client: handle fcntl error on bad fd in wl_display_connect

This makes wl_display_connect fail immediately instead of
succeeding when the integer provided by WAYLAND_SOCKET does
not refer to a valid file descriptor.

Signed-off-by: Manuel Stoeckl <code@mstoeckl.com>
This commit is contained in:
Manuel Stoeckl 2021-08-01 01:38:45 -04:00 committed by Simon Ser
parent d564823cfd
commit f00cfda737

View file

@ -1246,7 +1246,9 @@ wl_display_connect(const char *name)
errno = prev_errno;
flags = fcntl(fd, F_GETFD);
if (flags != -1)
if (flags == -1 && errno == EBADF)
return NULL;
else if (flags != -1)
fcntl(fd, F_SETFD, flags | FD_CLOEXEC);
unsetenv("WAYLAND_SOCKET");
} else {