[PATCH xserver v2] fixing -logfile when used with -displayfd

Antoine Martin antoine at nagafix.co.uk
Wed Feb 28 08:19:13 UTC 2018


Hi,

v2 updated with the feedback from Alan: the LogSetDisplay function is
the right place for this fix.

Trivial way to reproduce the bug:
Xorg -logfile /tmp/mylog -config /etc/xpra/xorg.conf -displayfd 2

The server then moans:
Failed to rename log file "/tmp/mylog" to "/tmp/mylog": No such file or
directory

And the log file is created but immediately renamed to "/tmp/mylog.old"

This is caused by the changes to the log file handling introduced by
this commit:
https://cgit.freedesktop.org/xorg/xserver/commit/?id=edcb6426f20c3be5dd5f50b76a686754aef2f64e

And below is the trivial fix for it. We only need to rename the logfile
if the log filename contains the magic substitution string "%s".

Signed-off-by: Antoine Martin <antoine at nagafix.co.uk>
---
diff --git a/os/log.c b/os/log.c
index 91e55a532..a3b28ccb4 100644
--- a/os/log.c
+++ b/os/log.c
@@ -296,7 +296,7 @@ LogInit(const char *fname, const char *backup)
 void
 LogSetDisplay(void)
 {
-    if (saved_log_fname) {
+    if (saved_log_fname && strstr(saved_log_fname, "%s")) {
         char *logFileName;

         logFileName = LogFilePrep(saved_log_fname, saved_log_backup,
display);


More information about the xorg-devel mailing list