Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin/fhandler_socket.cc')
-rw-r--r--winsup/cygwin/fhandler_socket.cc7
1 files changed, 6 insertions, 1 deletions
diff --git a/winsup/cygwin/fhandler_socket.cc b/winsup/cygwin/fhandler_socket.cc
index 7ab1ce8eb..93af60ee4 100644
--- a/winsup/cygwin/fhandler_socket.cc
+++ b/winsup/cygwin/fhandler_socket.cc
@@ -1347,7 +1347,12 @@ fhandler_socket::recv_internal (LPWSAMSG wsamsg)
res = WSARecvMsg (get_socket (), wsamsg, &wret, NULL, NULL);
else
res = WSARecvFrom (get_socket (), wsabuf, wsacnt, &wret,
- &wsamsg->dwFlags, wsamsg->name, &wsamsg->namelen,
+ &wsamsg->dwFlags, wsamsg->name,
+ /* Winsock returns WSAEFAULT if namelen is a valid
+ pointer while name is NULL. Both parameters are
+ ignored for TCP sockets, so this only occurs when
+ using UDP socket. */
+ wsamsg->name ? &wsamsg->namelen : NULL,
NULL, NULL);
if (!res)
{