From bc85c81687a24aea738094ff11f4448fb3b3afbb Mon Sep 17 00:00:00 2001 From: Chase Douglas Date: Fri, 6 Apr 2012 08:03:09 -0700 Subject: Save log file file descriptor for signal context logging None of the FILE based functions are signal safe, including fileno(), so we need to save the file descriptor for when we are in signal context. Signed-off-by: Chase Douglas Reviewed-by: Peter Hutterer Signed-off-by: Peter Hutterer --- os/log.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'os') diff --git a/os/log.c b/os/log.c index 2c13c1a7d..5394847aa 100644 --- a/os/log.c +++ b/os/log.c @@ -108,6 +108,7 @@ void (*OsVendorVErrorFProc) (const char *, va_list args) = NULL; #endif static FILE *logFile = NULL; +static int logFileFd = -1; static Bool logFlush = FALSE; static Bool logSync = FALSE; static int logVerbosity = DEFAULT_LOG_VERBOSITY; @@ -211,6 +212,8 @@ LogInit(const char *fname, const char *backup) FatalError("Cannot open log file \"%s\"\n", logFileName); setvbuf(logFile, NULL, _IONBF, 0); + logFileFd = fileno(logFile); + /* Flush saved log information. */ if (saveBuffer && bufferSize > 0) { fwrite(saveBuffer, bufferPos, 1, logFile); @@ -243,6 +246,7 @@ LogClose(enum ExitCode error) (error == EXIT_NO_ERROR) ? "successfully" : "with error", error); fclose(logFile); logFile = NULL; + logFileFd = -1; } } -- cgit v1.2.3