From c005b407eb15a9c9ef2aaef8fb54e941ee9735bc Mon Sep 17 00:00:00 2001 From: Menghan Li Date: Mon, 2 Aug 2021 13:05:02 -0700 Subject: [PATCH] [v1.40.x_backport] server: fix leaked net.Conn (#4633) 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 }