From: yellows8 Date: Thu, 2 Jul 2015 22:53:16 +0000 (-0400) Subject: Fixed socket() error handling when cmdbuf[2] is actually an error-code, not a handle... X-Git-Tag: v0.6.0~33 X-Git-Url: https://chaos.moe/g/?a=commitdiff_plain;h=8e620c269ddc4116076280aa2bf085b06a47ca02;p=corbenik%2Fctrulib.git 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]. --- diff --git a/libctru/source/services/soc/soc_socket.c b/libctru/source/services/soc/soc_socket.c index 5072275..bf02700 100644 --- a/libctru/source/services/soc/soc_socket.c +++ b/libctru/source/services/soc/soc_socket.c @@ -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; }