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

Reply via email to