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 */