[PATCH 1/7] os: Remove any old logfile before trying to write to it

Jon TURNEY jon.turney at dronecode.org.uk
Thu Nov 8 05:41:13 PST 2012


If we are not backing up logfiles, remove the old logfile before trying to write
a new logfile, as otherwise the operation may fail if the previous logfile was
created by a different user.

This change is useful when:
- The DDX doesn't use the logfile backup mechanism (i.e. not Xorg)
- The DDX is run by a non-root user, and then by a different non-root user
- The logfile directory doesn't have the restricted-deletion flag set

Signed-off-by: Jon TURNEY <jon.turney at dronecode.org.uk>
Acked-by: Yaakov Selkowitz <yselkowitz at users.sourceforge.net>
Reviewed-by: Yaakov Selkowitz <yselkowitz at users.sourceforge.net>
---
 os/log.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/os/log.c b/os/log.c
index 4820e9a..15271eb 100644
--- a/os/log.c
+++ b/os/log.c
@@ -216,6 +216,9 @@ LogInit(const char *fname, const char *backup)
                 free(oldLog);
             }
         }
+        else {
+            unlink(logFileName);
+        }
         if ((logFile = fopen(logFileName, "w")) == NULL)
             FatalError("Cannot open log file \"%s\"\n", logFileName);
         setvbuf(logFile, NULL, _IONBF, 0);
-- 
1.7.9



More information about the xorg-devel mailing list