aboutsummaryrefslogtreecommitdiff
path: root/src/socket.c
diff options
context:
space:
mode:
authorAndreas Schneider <asn@cryptomilk.org>2013-06-17 13:09:50 +0200
committerAndreas Schneider <asn@cryptomilk.org>2013-06-17 13:09:50 +0200
commit42c7bc5a21225b41292cd0e0ea8822b10366940e (patch)
tree87a0e27d353c21825092411c1d4fc077401887a1 /src/socket.c
parentee47cab5483bce22efc8415effb9e122963ee668 (diff)
downloadlibssh-42c7bc5a21225b41292cd0e0ea8822b10366940e.tar.gz
libssh-42c7bc5a21225b41292cd0e0ea8822b10366940e.tar.xz
libssh-42c7bc5a21225b41292cd0e0ea8822b10366940e.zip
socket: Check return value of getsockopt().
Diffstat (limited to 'src/socket.c')
-rw-r--r--src/socket.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/socket.c b/src/socket.c
index 85b87b77..93e8d5d5 100644
--- a/src/socket.c
+++ b/src/socket.c
@@ -230,7 +230,10 @@ int ssh_socket_pollcallback(struct ssh_poll_handle_struct *p, socket_t fd, int r
/* Check if we are in a connecting state */
if(s->state==SSH_SOCKET_CONNECTING){
s->state=SSH_SOCKET_ERROR;
- getsockopt(fd,SOL_SOCKET,SO_ERROR,(char *)&err,&errlen);
+ r = getsockopt(fd, SOL_SOCKET, SO_ERROR, (char *)&err, &errlen);
+ if (r < 0) {
+ err = errno;
+ }
s->last_errno=err;
ssh_socket_close(s);
if(s->callbacks && s->callbacks->connected)