From 0e4ee0c9bfc8d4048fd49a1061080a92c0dc0804 Mon Sep 17 00:00:00 2001 From: Brad Fitzpatrick Date: Sat, 13 Dec 2014 18:19:05 +1100 Subject: [PATCH] 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 --- src/net/http/transport.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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