From: William Dauchy Date: Wed, 12 Feb 2020 09:09:14 +0000 (+0100) Subject: BUG/MINOR: tcp: avoid closing fd when socket failed in tcp_bind_listener X-Git-Tag: v2.2-dev3~85 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c0e23aef051dd3916ef3eedf934837942cb7db71;p=thirdparty%2Fhaproxy.git BUG/MINOR: tcp: avoid closing fd when socket failed in tcp_bind_listener we were trying to close file descriptor even when `socket` call was failing. this should fix github issue #499 this should be backported to all versions >= v1.8 Fixes: 153659f1ae69a1 ("MINOR: tcp: When binding socket, attempt to reuse one from the old proc.") Signed-off-by: William Dauchy --- diff --git a/src/proto_tcp.c b/src/proto_tcp.c index 197cb432b9..45d6a7c199 100644 --- a/src/proto_tcp.c +++ b/src/proto_tcp.c @@ -749,8 +749,8 @@ int tcp_bind_listener(struct listener *listener, char *errmsg, int errlen) if (getsockopt(fd, IPPROTO_TCP, TCP_MAXSEG, &default_tcp_maxseg, &ready_len) == -1) ha_warning("Failed to get the default value of TCP_MAXSEG\n"); + close(fd); } - close(fd); } if (default_tcp6_maxseg == -1) { default_tcp6_maxseg = -2;