aboutsummaryrefslogtreecommitdiff
path: root/src/net/http/header.go
diff options
context:
space:
mode:
authorJoshua Rubin <joshua@rubixconsulting.com>2017-10-27 01:47:08 -0600
committerTom Bergan <tombergan@google.com>2017-10-27 19:33:14 +0000
commita4d03a9bf7604b727abd0a1ebfb118ff6366ee50 (patch)
tree28954eb28da460c6cefaf5447dd31782b61adadc /src/net/http/header.go
parentb52b77cb953430b76242724394bb66e79fda9f10 (diff)
downloadgo-a4d03a9bf7604b727abd0a1ebfb118ff6366ee50.tar.gz
go-a4d03a9bf7604b727abd0a1ebfb118ff6366ee50.zip
net/http: fix minor leak in Header.WriteSubset
Header.WriteSubset uses a sync.Pool but wouldn't Put the sorter back in the pool if there was an error writing to the io.Writer I'm not really sure why the sorter is returned to begin with. The comment says "for possible return to headerSorterCache". This also doesn't address potential panics that might occur, but the overhead of doing the Put in a defer would likely be too great. Change-Id: If3c45a4c3e11f6ec65d187e25b63455b0142d4e3 Reviewed-on: https://go-review.googlesource.com/73910 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Tom Bergan <tombergan@google.com>
Diffstat (limited to 'src/net/http/header.go')
-rw-r--r--src/net/http/header.go1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/net/http/header.go b/src/net/http/header.go
index 832169247f..622ad28963 100644
--- a/src/net/http/header.go
+++ b/src/net/http/header.go
@@ -156,6 +156,7 @@ func (h Header) WriteSubset(w io.Writer, exclude map[string]bool) error {
v = textproto.TrimString(v)
for _, s := range []string{kv.key, ": ", v, "\r\n"} {
if _, err := ws.WriteString(s); err != nil {
+ headerSorterPool.Put(sorter)
return err
}
}