Ralf Habacker (@rhabacker) commented about server/sock.c:
if (errno == EADDRINUSE && sock->reuseaddr) errno = EACCES;
set_error( sock_get_ntstatus( errno ) );
return;
/* Windows' AF_UNIX implementation has an edge case allowing for a socket to bind to
* an empty path. Linux doesn't, so it throws EINVAL. We check for this situation
* here and avoid early-exiting if it's the case. */
if (!(errno == EINVAL && sock->family == WS_AF_UNIX && !*params->addr.sa_data))
{
set_error( sock_get_ntstatus( errno ) );
if (sock->family == WS_AF_UNIX && *params->addr.sa_data)
fchdir(server_dir_fd);
This should be changed.