From: Björn Stenberg Date: Tue, 12 Nov 2013 20:09:03 +0000 (+0100) Subject: connect: Return the socket descriptor even on fail X-Git-Tag: curl-7_34_0~89 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ed1662c374361adf8a3bd44be8490891f37e074a;p=curl connect: Return the socket descriptor even on fail singleipconnect() did not return the open socket descriptor on some errors, thereby sometimes causing a socket leak. This patch ensures the socket is always returned. --- diff --git a/lib/connect.c b/lib/connect.c index 67f73343c..91aac8b88 100644 --- a/lib/connect.c +++ b/lib/connect.c @@ -1027,6 +1027,8 @@ singleipconnect(struct connectdata *conn, conn->bits.ipv6 = (addr.family == AF_INET6)?TRUE:FALSE; #endif + *sockp = sockfd; + if(-1 == rc) { switch (error) { case EINPROGRESS: @@ -1040,7 +1042,6 @@ singleipconnect(struct connectdata *conn, case EAGAIN: #endif #endif - *sockp = sockfd; return CURLE_OK; default: @@ -1053,8 +1054,6 @@ singleipconnect(struct connectdata *conn, return CURLE_COULDNT_CONNECT; } } - else - *sockp = sockfd; return CURLE_OK; }