diff --git a/src/xpdev/sockwrap.c b/src/xpdev/sockwrap.c index 1a2d1cb30788eb5a8127c43c6992240e4ba98029..d25e7444e48ec3165fd659e3020eedbe642071f5 100644 --- a/src/xpdev/sockwrap.c +++ b/src/xpdev/sockwrap.c @@ -373,12 +373,13 @@ int nonblocking_connect(SOCKET sock, struct sockaddr* addr, size_t size, unsigne && (ERROR_VALUE==EWOULDBLOCK || ERROR_VALUE==EINPROGRESS)) { fd_set socket_set; struct timeval tv; + socklen_t optlen=sizeof(result); tv.tv_sec = timeout; tv.tv_usec = 0; FD_ZERO(&socket_set); FD_SET(sock,&socket_set); if(select(sock,NULL,&socket_set,NULL,&tv)==1) - getsockopt(sock, SOL_SOCKET, SO_ERROR, &result, sizeof(result)); + getsockopt(sock, SOL_SOCKET, SO_ERROR, (void*)&result, &optlen); } return result; }