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:47:12 +0200 |
commit | f071954a76b672e4775780dea9635e95d1a5729d (patch) | |
tree | 50582892d90ee061226ff585b035c19d8c74d0ca | |
parent | a033b93c616f4a81afc3fc6a017396d507d96c19 (diff) | |
download | libssh-f071954a76b672e4775780dea9635e95d1a5729d.tar.gz libssh-f071954a76b672e4775780dea9635e95d1a5729d.tar.xz libssh-f071954a76b672e4775780dea9635e95d1a5729d.zip |
Check return code of connect(2).
Signed-off-by: William Orr <will@worrbase.com>
Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
(cherry picked from commit 250f50648755415a138b1347a17a367ad384b66d)
-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; } |