diff options
Diffstat (limited to 'xorg-server/os')
-rw-r--r-- | xorg-server/os/backtrace.c | 5 | ||||
-rw-r--r-- | xorg-server/os/log.c | 14 | ||||
-rw-r--r-- | xorg-server/os/utils.c | 4 | ||||
-rw-r--r-- | xorg-server/os/xprintf.c | 5 |
4 files changed, 8 insertions, 20 deletions
diff --git a/xorg-server/os/backtrace.c b/xorg-server/os/backtrace.c index 7ca6dab6d..58b4b1f34 100644 --- a/xorg-server/os/backtrace.c +++ b/xorg-server/os/backtrace.c @@ -27,6 +27,8 @@ #include "os.h" #include "misc.h" +#include <errno.h> +#include <string.h> #ifdef HAVE_BACKTRACE #ifndef _GNU_SOURCE @@ -199,9 +201,8 @@ void xorg_backtrace(void) { walkcontext(&u, xorg_backtrace_frame, &depth); else # endif - Error("Failed to get backtrace info"); + ErrorF("Failed to get backtrace info: %s\n", strerror(errno)); } - ErrorF("\n"); } # else diff --git a/xorg-server/os/log.c b/xorg-server/os/log.c index 2eddf066a..9ee32c93d 100644 --- a/xorg-server/os/log.c +++ b/xorg-server/os/log.c @@ -87,7 +87,6 @@ OR PERFORMANCE OF THIS SOFTWARE. #include <sys/stat.h> #include <stdarg.h> #include <stdlib.h> /* for malloc() */ -#include <errno.h> #include "input.h" #include "site.h" @@ -638,19 +637,6 @@ ErrorF(const char * f, ...) va_end(args); } -/* A perror() workalike. */ - -void -Error(const char *str) -{ - const char *err = strerror(errno); - - if (str) - LogWrite(-1, "%s: %s", str, err); - else - LogWrite(-1, "%s", err); -} - void LogPrintMarkers(void) { diff --git a/xorg-server/os/utils.c b/xorg-server/os/utils.c index e8ecb7193..07cf4c24f 100644 --- a/xorg-server/os/utils.c +++ b/xorg-server/os/utils.c @@ -297,7 +297,7 @@ LockServer(void) FatalError("Could not create lock file in %s\n", tmp); (void) sprintf(pid_str, "%10ld\n", (long)getpid()); (void) write(lfd, pid_str, 11); - (void) chmod(tmp, 0444); + (void) fchmod(lfd, 0444); (void) close(lfd); /* @@ -318,7 +318,7 @@ LockServer(void) /* * Read the pid from the existing file */ - lfd = open(LockFile, O_RDONLY); + lfd = open(LockFile, O_RDONLY|O_NOFOLLOW); if (lfd < 0) { unlink(tmp); FatalError("Can't read lock file %s\n", LockFile); diff --git a/xorg-server/os/xprintf.c b/xorg-server/os/xprintf.c index 254b7374a..3b4bb4117 100644 --- a/xorg-server/os/xprintf.c +++ b/xorg-server/os/xprintf.c @@ -64,6 +64,8 @@ #include "os.h" #include <stdarg.h> #include <stdio.h> +#include <errno.h> +#include <string.h> #ifdef asprintf # undef asprintf @@ -154,8 +156,7 @@ XNFvasprintf(char **ret, const char * _X_RESTRICT_KYWD format, va_list va) { int size = vasprintf(ret, format, va); if ((size == -1) || (*ret == NULL)) { - Error("XNFvasprintf"); - FatalError("XNFvasprintf failed"); + FatalError("XNFvasprintf failed: %s", strerror(errno)); } return size; } |