diff options
author | William Orr <will@worrbase.com> | 2014-09-14 02:32:24 -0700 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2014-10-12 15:39:58 +0200 |
commit | 250f50648755415a138b1347a17a367ad384b66d (patch) | |
tree | 3250e5ab40d93a9b186dd874159b286899776415 /src/connect.c | |
parent | 9dc932c02b6d88b380fdaee0b7184b23e2b85c2f (diff) | |
download | libssh-250f50648755415a138b1347a17a367ad384b66d.tar.gz libssh-250f50648755415a138b1347a17a367ad384b66d.tar.xz libssh-250f50648755415a138b1347a17a367ad384b66d.zip |
Check return code of connect(2).
Signed-off-by: William Orr <will@worrbase.com>
Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
Diffstat (limited to 'src/connect.c')
-rw-r--r-- | src/connect.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/connect.c b/src/connect.c index 5ddd149f..807b1faf 100644 --- a/src/connect.c +++ b/src/connect.c @@ -382,7 +382,15 @@ socket_t ssh_connect_host_nonblocking(ssh_session session, const char *host, continue; } - connect(s, itr->ai_addr, itr->ai_addrlen); + rc = connect(s, itr->ai_addr, itr->ai_addrlen); + if (rc == -1) { + ssh_set_error(session, SSH_FATAL, + "Failed to connect: %s", strerror(errno)); + ssh_connect_socket_close(s); + s = -1; + continue; + } + break; } |