aboutsummaryrefslogtreecommitdiff
path: root/src/connect.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/connect.c')
-rw-r--r--src/connect.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/connect.c b/src/connect.c
index ae55b140..3517f265 100644
--- a/src/connect.c
+++ b/src/connect.c
@@ -139,6 +139,7 @@ static int ssh_connect_ai_timeout(ssh_session session, const char *host,
int timeout_ms;
ssh_pollfd_t fds;
int rc = 0;
+ int ret;
socklen_t len = sizeof(rc);
enter_function();
@@ -181,11 +182,11 @@ static int ssh_connect_ai_timeout(ssh_session session, const char *host,
leave_function();
return -1;
}
- rc = 0;
+ rc = -1;
/* Get connect(2) return code. Zero means no error */
- getsockopt(s, SOL_SOCKET, SO_ERROR,(char *) &rc, &len);
- if (rc != 0) {
+ ret = getsockopt(s, SOL_SOCKET, SO_ERROR,(char *) &rc, &len);
+ if (ret < 0 || rc != 0) {
ssh_set_error(session, SSH_FATAL,
"Connect to %s:%d failed: %s", host, port, strerror(rc));
ssh_connect_socket_close(s);