summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/libc_r/uthread/uthread_connect.c5
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;
OpenPOWER on IntegriCloud