X-Git-Url: https://git.reactos.org/?p=reactos.git;a=blobdiff_plain;f=reactos%2Fdll%2Fwin32%2Fmsafd%2Fmisc%2Fsndrcv.c;h=e94ab2bb357eda111dbbc5b1df40843eea747674;hp=9d5adb79e6b75cfb3bb432d27a6ea5a08ca7d81d;hb=39544b234bd1996d53a43fc6175a7b5b46ad9bb5;hpb=ee50a9c8894e69a523c76e11ab049f9321c51bb5 diff --git a/reactos/dll/win32/msafd/misc/sndrcv.c b/reactos/dll/win32/msafd/misc/sndrcv.c index 9d5adb79e6b..e94ab2bb357 100644 --- a/reactos/dll/win32/msafd/misc/sndrcv.c +++ b/reactos/dll/win32/msafd/misc/sndrcv.c @@ -208,8 +208,15 @@ WSPRecv(SOCKET Handle, Socket = GetSocketStructure(Handle); if (!Socket) { - *lpErrno = WSAENOTSOCK; - return SOCKET_ERROR; + if (lpErrno) + *lpErrno = WSAENOTSOCK; + return SOCKET_ERROR; + } + if (!lpNumberOfBytesRead && !lpOverlapped) + { + if (lpErrno) + *lpErrno = WSAEFAULT; + return SOCKET_ERROR; } Status = NtCreateEvent( &SockEvent, EVENT_ALL_ACCESS, @@ -389,8 +396,15 @@ WSPRecvFrom(SOCKET Handle, Socket = GetSocketStructure(Handle); if (!Socket) { - *lpErrno = WSAENOTSOCK; - return SOCKET_ERROR; + if (lpErrno) + *lpErrno = WSAENOTSOCK; + return SOCKET_ERROR; + } + if (!lpNumberOfBytesRead && !lpOverlapped) + { + if (lpErrno) + *lpErrno = WSAEFAULT; + return SOCKET_ERROR; } if (!(Socket->SharedData->ServiceFlags1 & XP1_CONNECTIONLESS)) @@ -591,8 +605,15 @@ WSPSend(SOCKET Handle, Socket = GetSocketStructure(Handle); if (!Socket) { - *lpErrno = WSAENOTSOCK; - return SOCKET_ERROR; + if (lpErrno) + *lpErrno = WSAENOTSOCK; + return SOCKET_ERROR; + } + if (!lpNumberOfBytesSent && !lpOverlapped) + { + if (lpErrno) + *lpErrno = WSAEFAULT; + return SOCKET_ERROR; } Status = NtCreateEvent( &SockEvent, EVENT_ALL_ACCESS, @@ -740,8 +761,15 @@ WSPSendTo(SOCKET Handle, Socket = GetSocketStructure(Handle); if (!Socket) { - *lpErrno = WSAENOTSOCK; - return SOCKET_ERROR; + if (lpErrno) + *lpErrno = WSAENOTSOCK; + return SOCKET_ERROR; + } + if (!lpNumberOfBytesSent && !lpOverlapped) + { + if (lpErrno) + *lpErrno = WSAEFAULT; + return SOCKET_ERROR; } if (!(Socket->SharedData->ServiceFlags1 & XP1_CONNECTIONLESS))