]> Cypherpunks repositories - gostls13.git/commitdiff
net/http: fix timer leak in Transport when using ResponseHeaderTimeout
authorBrad Fitzpatrick <bradfitz@golang.org>
Sat, 13 Dec 2014 07:19:05 +0000 (18:19 +1100)
committerBrad Fitzpatrick <bradfitz@golang.org>
Sat, 13 Dec 2014 07:48:24 +0000 (07:48 +0000)
Fixes #9104

Change-Id: Ide5ac70215d73278e6910f5b9c7687ad7734c0be
Reviewed-on: https://go-review.googlesource.com/1530
Reviewed-by: David Symonds <dsymonds@golang.org>
src/net/http/transport.go

index 782f7cd395b132a96a5aa10d78e37432e95cc24e..b751ffbcfcd422b64f5a7719c671148eb746eaf2 100644 (file)
@@ -1087,7 +1087,9 @@ WaitResponse:
                                break WaitResponse
                        }
                        if d := pc.t.ResponseHeaderTimeout; d > 0 {
-                               respHeaderTimer = time.After(d)
+                               timer := time.NewTimer(d)
+                               defer timer.Stop() // prevent leaks
+                               respHeaderTimer = timer.C
                        }
                case <-pconnDeadCh:
                        // The persist connection is dead. This shouldn't