Commit ed1662c3 authored by Björn Stenberg's avatar Björn Stenberg Committed by Steve Holme
Browse files

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.
parent 1f0616ea
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -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;
}