]> granicus.if.org Git - curl/commitdiff
check if getsockname() returns failure before using the address it provides
authorDaniel Stenberg <daniel@haxx.se>
Tue, 17 May 2005 09:18:17 +0000 (09:18 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Tue, 17 May 2005 09:18:17 +0000 (09:18 +0000)
lib/ftp.c

index 740926a872aebda1ef61a1852e5b8c9d07413bb4..49a1d82d0b374249537d451c03dfcbe94222aa1a 100644 (file)
--- a/lib/ftp.c
+++ b/lib/ftp.c
@@ -209,12 +209,12 @@ static CURLcode AllowServerConnect(struct connectdata *conn)
   default:
     /* we have received data here */
     {
-      curl_socket_t s;
+      curl_socket_t s = CURL_SOCKET_BAD;
       socklen_t size = (socklen_t) sizeof(struct sockaddr_in);
       struct sockaddr_in add;
 
-      getsockname(sock, (struct sockaddr *) &add, &size);
-      s=accept(sock, (struct sockaddr *) &add, &size);
+      if(0 == getsockname(sock, (struct sockaddr *) &add, &size))
+        s=accept(sock, (struct sockaddr *) &add, &size);
 
       sclose(sock); /* close the first socket */