aboutsummaryrefslogtreecommitdiffstats
path: root/src/wayland-server.c
diff options
context:
space:
mode:
authorLiu Wenlong <liuwl.fnst@cn.fujitsu.com>2019-08-26 17:08:22 +0800
committerLiu Wenlong <liuwl.fnst@cn.fujitsu.com>2019-08-27 01:32:45 +0800
commit152c9ed968124c253f0be25b76c2a083a21af37e (patch)
treec805903009b9c7070aae6344efe0ce99e8851245 /src/wayland-server.c
parentImprove description of wl_surface (diff)
downloadwayland-152c9ed968124c253f0be25b76c2a083a21af37e.tar
wayland-152c9ed968124c253f0be25b76c2a083a21af37e.tar.gz
wayland-152c9ed968124c253f0be25b76c2a083a21af37e.tar.bz2
wayland-152c9ed968124c253f0be25b76c2a083a21af37e.tar.lz
wayland-152c9ed968124c253f0be25b76c2a083a21af37e.tar.xz
wayland-152c9ed968124c253f0be25b76c2a083a21af37e.tar.zst
wayland-152c9ed968124c253f0be25b76c2a083a21af37e.zip
server: Fix fake "Address already in use" error
In the current workflow, socket file will be deleted if it already exists. However, if the socket file is a symbolic link and the file that it refers to doesn't exist, we will got "Address already in use" because bind() thinks the socket file exists and won't create it. Now, use lstat() to determine whether the socket file exists. Signed-off-by: Liu Wenlong <liuwl.fnst@cn.fujitsu.com>
Diffstat (limited to 'src/wayland-server.c')
-rw-r--r--src/wayland-server.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/wayland-server.c b/src/wayland-server.c
index 83b984f..3bc6ed7 100644
--- a/src/wayland-server.c
+++ b/src/wayland-server.c
@@ -1393,7 +1393,7 @@ wl_socket_lock(struct wl_socket *socket)
goto err_fd;
}
- if (stat(socket->addr.sun_path, &socket_stat) < 0 ) {
+ if (lstat(socket->addr.sun_path, &socket_stat) < 0 ) {
if (errno != ENOENT) {
wl_log("did not manage to stat file %s\n",
socket->addr.sun_path);