diff options
Diffstat (limited to 'winsup/cygwin/net.cc')
-rw-r--r-- | winsup/cygwin/net.cc | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/winsup/cygwin/net.cc b/winsup/cygwin/net.cc index c3b1e355a..4e93a9e11 100644 --- a/winsup/cygwin/net.cc +++ b/winsup/cygwin/net.cc @@ -900,6 +900,17 @@ cygwin_accept (int fd, struct sockaddr *peer, int *len) fhandler_socket *sock = get (fd); if (sock) { + /* Allows NULL peer and len parameters. */ + struct sockaddr_in peer_dummy; + int len_dummy; + if (!peer) + peer = (struct sockaddr *) &peer_dummy; + if (!len) + { + len_dummy = sizeof (struct sockaddr_in); + len = &len_dummy; + } + /* accept on NT fails if len < sizeof (sockaddr_in) * some programs set len to * sizeof (name.sun_family) + strlen (name.sun_path) for UNIX domain |