aboutsummaryrefslogtreecommitdiff
path: root/lib/ftp.c
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2005-05-17 09:18:17 +0000
committerDaniel Stenberg <daniel@haxx.se>2005-05-17 09:18:17 +0000
commitede9fb4fcc600ae19d38a8b1b8833250e84801b7 (patch)
treed45cb59b1821a3e0c6c85099917006ec3b916bb7 /lib/ftp.c
parent723aef71e8c985b75ebb13b69ec359988d2cbba3 (diff)
check if getsockname() returns failure before using the address it provides
Diffstat (limited to 'lib/ftp.c')
-rw-r--r--lib/ftp.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/lib/ftp.c b/lib/ftp.c
index 740926a87..49a1d82d0 100644
--- 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 */