Fixed socket() error handling when cmdbuf[2] is actually an error-code, not a handle. In socket(), write SYNC_ERROR to errno when an error occurs due to cmdbuf[1].

This commit is contained in:
yellows8 2015-07-02 18:53:16 -04:00
parent 585f84276a
commit 8e620c269d

View File

@ -41,9 +41,11 @@ int socket(int domain, int type, int protocol)
}
ret = (int)cmdbuf[1];
if(ret != 0) {
if(ret == 0)ret = cmdbuf[2];
if(ret < 0) {
__release_handle(fd);
errno = _net_convert_error(cmdbuf[2]);
if(cmdbuf[1] == 0)errno = _net_convert_error(ret);
if(cmdbuf[1] != 0)errno = SYNC_ERROR;
return -1;
}