From f22f7d539c42071762b8682aa922912c38978801 Mon Sep 17 00:00:00 2001 From: fatedier Date: Fri, 6 Mar 2026 02:25:47 +0800 Subject: [PATCH] server/group: fix port leak and incorrect Listen port in TCPGroup (#5200) Fix two bugs in TCPGroup.Listen(): - Release acquired port when net.Listen fails to prevent port leak - Use realPort instead of port for net.Listen to ensure consistency between port manager records and actual listening port --- server/group/tcp.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/server/group/tcp.go b/server/group/tcp.go index c0dcd5f7..f52d6407 100644 --- a/server/group/tcp.go +++ b/server/group/tcp.go @@ -100,8 +100,9 @@ func (tg *TCPGroup) Listen(proxyName string, group string, groupKey string, addr if err != nil { return } - tcpLn, errRet := net.Listen("tcp", net.JoinHostPort(addr, strconv.Itoa(port))) + tcpLn, errRet := net.Listen("tcp", net.JoinHostPort(addr, strconv.Itoa(realPort))) if errRet != nil { + tg.ctl.portManager.Release(realPort) err = errRet return }