internal/socks: fix socket descriptor leakage in Dialer.Dial Fixes golang/go#27630. Change-Id: Id44ade435733ffcd2fc8159ea9ea3287baadf97a Reviewed-on: https://go-review.googlesource.com/134755 Run-TryBot: Mikio Hara <mikioh.mikioh@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
diff --git a/internal/socks/socks.go b/internal/socks/socks.go index d93e699..6929a9f 100644 --- a/internal/socks/socks.go +++ b/internal/socks/socks.go
@@ -224,6 +224,7 @@ return nil, &net.OpError{Op: d.cmd.String(), Net: network, Source: proxy, Addr: dst, Err: err} } if _, err := d.DialWithConn(context.Background(), c, network, address); err != nil { + c.Close() return nil, err } return c, nil