BUG/MINOR: sock: Unclosed fd in case of connection allocation failure
If allocating a connection object failed right after a successful accept
on a listener, the new file descriptor was not properly closed.
This fixes GitHub issue #905.
It can be backported to 2.3.
(cherry picked from commit 25dd0ad1239627aa87d9ce25d268546037a97197)
Signed-off-by: Willy Tarreau <w@1wt.eu>
diff --git a/src/sock.c b/src/sock.c
index 9eff7f1..3ebcb14 100644
--- a/src/sock.c
+++ b/src/sock.c
@@ -161,6 +161,9 @@
fail_conn:
sockaddr_free(&addr);
+ /* The accept call already succeeded by the time we try to allocate the connection,
+ * we need to close it in case of failure. */
+ close(cfd);
fail_addr:
ret = CO_AC_PAUSE;
goto done;