BUG: tcp: close socket fd upon connect error
When the data layer fails to initialize (eg: out of memory for SSL), we
must close the socket fd we just allocated.
diff --git a/src/proto_tcp.c b/src/proto_tcp.c
index b43731c..f819147 100644
--- a/src/proto_tcp.c
+++ b/src/proto_tcp.c
@@ -459,8 +459,10 @@
fd_insert(fd);
conn_sock_want_send(conn); /* for connect status */
- if (conn_data_init(conn) < 0)
+ if (conn_data_init(conn) < 0) {
+ fd_delete(fd);
return SN_ERR_RESOURCE;
+ }
if (data)
conn_data_want_send(conn); /* prepare to send data if any */