]> Cypherpunks repositories - gostls13.git/commitdiff
net/http: fix the potential leak of textproto.Reader from pool
authorAndy Pan <panjf2000@gmail.com>
Sat, 24 Sep 2022 05:13:14 +0000 (13:13 +0800)
committerGopher Robot <gobot@golang.org>
Tue, 27 Sep 2022 16:01:59 +0000 (16:01 +0000)
Fixes #55835

Change-Id: I6109bab2941b859e8cfef22f65a6a3a5f977a8d7
Reviewed-on: https://go-review.googlesource.com/c/go/+/433835
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Damien Neil <dneil@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Auto-Submit: Ian Lance Taylor <iant@google.com>
Run-TryBot: Andy Pan <panjf2000@gmail.com>
Run-TryBot: Ian Lance Taylor <iant@google.com>

src/net/http/request.go

index 924ca1b390bf084cd805d8a12574b163e0428ee8..88d3d75af5aec75f272583e499637b4fff7aaf01 100644 (file)
@@ -1030,6 +1030,8 @@ func ReadRequest(b *bufio.Reader) (*Request, error) {
 
 func readRequest(b *bufio.Reader) (req *Request, err error) {
        tp := newTextprotoReader(b)
+       defer putTextprotoReader(tp)
+
        req = new(Request)
 
        // First line: GET /index.html HTTP/1.0
@@ -1038,7 +1040,6 @@ func readRequest(b *bufio.Reader) (req *Request, err error) {
                return nil, err
        }
        defer func() {
-               putTextprotoReader(tp)
                if err == io.EOF {
                        err = io.ErrUnexpectedEOF
                }