diff options
-rw-r--r-- | lib/libc_r/uthread/uthread_connect.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/libc_r/uthread/uthread_connect.c b/lib/libc_r/uthread/uthread_connect.c index d05de16..14e8eb3 100644 --- a/lib/libc_r/uthread/uthread_connect.c +++ b/lib/libc_r/uthread/uthread_connect.c @@ -42,7 +42,7 @@ int connect(int fd, const struct sockaddr * name, int namelen) { struct sockaddr tmpname; - int ret, tmpnamelen; + int errnolen, ret, tmpnamelen; if ((ret = _FD_LOCK(fd, FD_RDWR, NULL)) == 0) { if ((ret = _thread_sys_connect(fd, name, namelen)) < 0) { @@ -63,7 +63,8 @@ connect(int fd, const struct sockaddr * name, int namelen) * Get the error, this function * should not fail */ - _thread_sys_getsockopt(fd, SOL_SOCKET, SO_ERROR, &errno, &tmpnamelen); + errnolen = sizeof(errno); + _thread_sys_getsockopt(fd, SOL_SOCKET, SO_ERROR, &errno, &errnolen); } } else { ret = -1; |