diff --git a/src/xserver-launcher.c b/src/xserver-launcher.c index d3657c82..88ceb0c4 100644 --- a/src/xserver-launcher.c +++ b/src/xserver-launcher.c @@ -1654,9 +1654,13 @@ create_lockfile(int display, char *lockfile, size_t lsize) /* stale lock file; unlink and try again */ fprintf(stderr, "unlinking stale lock file %s\n", lockfile); - unlink(lockfile); - errno = EAGAIN; close(fd); + if (unlink(lockfile)) + /* If we fail to unlink, return EEXIST + so we try the next display number.*/ + errno = EEXIST; + else + errno = EAGAIN; return -1; }