From: Brad Fitzpatrick Date: Sat, 13 Dec 2014 07:19:05 +0000 (+1100) Subject: net/http: fix timer leak in Transport when using ResponseHeaderTimeout X-Git-Tag: go1.5beta1~2633 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=0e4ee0c9bfc8d4048fd49a1061080a92c0dc0804;p=gostls13.git net/http: fix timer leak in Transport when using ResponseHeaderTimeout Fixes #9104 Change-Id: Ide5ac70215d73278e6910f5b9c7687ad7734c0be Reviewed-on: https://go-review.googlesource.com/1530 Reviewed-by: David Symonds --- diff --git a/src/net/http/transport.go b/src/net/http/transport.go index 782f7cd395..b751ffbcfc 100644 --- a/src/net/http/transport.go +++ b/src/net/http/transport.go @@ -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