Hi Yuyi, On Apr 9 23:58, Yuyi Wang wrote: > For a datagram socket received by recvfrom, the type param is not > assigned correctly, making fhandler_socket_local::connect() to return > WSAEPROTOTYPE. > --- > winsup/cygwin/fhandler/socket_local.cc | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/winsup/cygwin/fhandler/socket_local.cc > b/winsup/cygwin/fhandler/socket_local.cc > index 270a1ef31..340a2b33c 100644 > --- a/winsup/cygwin/fhandler/socket_local.cc > +++ b/winsup/cygwin/fhandler/socket_local.cc > @@ -87,6 +87,7 @@ get_inet_addr_local (const struct sockaddr *in, int inlen, > addr.sin_addr.s_addr = htonl (INADDR_LOOPBACK); > *outlen = sizeof addr; > memcpy (out, &addr, *outlen); > + *type = SOCK_DGRAM;
type is a default parameter and can be NULL. It's only non-NULL if called from fhandler_socket_local::connect. Checking the pointer would be prudent. Thanks, Corinna