From c0e23aef051dd3916ef3eedf934837942cb7db71 Mon Sep 17 00:00:00 2001 From: William Dauchy Date: Wed, 12 Feb 2020 10:09:14 +0100 Subject: [PATCH] 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 --- src/proto_tcp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/proto_tcp.c b/src/proto_tcp.c index 197cb432b..45d6a7c19 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;