From a593830357a28e2efc94280cd786bdb18bf76b2f Mon Sep 17 00:00:00 2001 From: Menghan Li Date: Fri, 30 Jul 2021 14:44:13 -0700 Subject: [PATCH] [server_conn_leak] server: fix leaked net.Conn This happens when NewServerTransport() returns nil, nil. The rawConn is closed when the transport is closed, which will never happen in this case (since the returned transport is nil). --- server.go | 1 + 1 file changed, 1 insertion(+) diff --git a/server.go b/server.go index de170830641..0251f48daf1 100644 --- a/server.go +++ b/server.go @@ -863,6 +863,7 @@ func (s *Server) handleRawConn(lisAddr string, rawConn net.Conn) { // Finish handshaking (HTTP2) st := s.newHTTP2Transport(conn, authInfo) if st == nil { + conn.Close() return }