]> granicus.if.org Git - curl/blobdiff - lib/socketpair.c
socketpair: fix double-close in error case
[curl] / lib / socketpair.c
index 5dd9f27e91d11f37e03b3ebb708c5743a6d28c1e..ffdfdad7f33865f54c242fe776e31ab2face04d1 100644 (file)
@@ -89,8 +89,6 @@ int Curl_socketpair(int domain, int type, int protocol,
   if(socks[1] == CURL_SOCKET_BAD)
     goto error;
 
-  sclose(listener);
-
   /* verify that nothing else connected */
   msnprintf(data[0], sizeof(data[0]), "%p", socks);
   dlen = strlen(data[0]);
@@ -100,6 +98,8 @@ int Curl_socketpair(int domain, int type, int protocol,
     goto error;
   if(memcmp(data[0], data[1], dlen))
     goto error;
+
+  sclose(listener);
   return 0;
 
   error: