Skip to content

Commit cf34111

Browse files
committed
http: fix race in DATA frame padding refund
Move flow adjustment back under cc.mu. Fixes golang/go#48491. Change-Id: Idb762091cfeb55c18bc74389e62193f81438624f Reviewed-on: https://go-review.googlesource.com/c/net/+/351950 Trust: Damien Neil <[email protected]> Run-TryBot: Damien Neil <[email protected]> Reviewed-by: Brad Fitzpatrick <[email protected]>
1 parent 978cfad commit cf34111

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

http2/transport.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2371,14 +2371,16 @@ func (rl *clientConnReadLoop) processData(f *DataFrame) error {
23712371
}
23722372
if refund > 0 {
23732373
cc.inflow.add(int32(refund))
2374+
if !didReset {
2375+
cs.inflow.add(int32(refund))
2376+
}
23742377
}
23752378
cc.mu.Unlock()
23762379

23772380
if refund > 0 {
23782381
cc.wmu.Lock()
23792382
cc.fr.WriteWindowUpdate(0, uint32(refund))
23802383
if !didReset {
2381-
cs.inflow.add(int32(refund))
23822384
cc.fr.WriteWindowUpdate(cs.ID, uint32(refund))
23832385
}
23842386
cc.bw.Flush()

0 commit comments

Comments
 (0)