From 15aa9900e22693f5fd92d2eb92499909bc061a67 Mon Sep 17 00:00:00 2001 From: Fabian Keil Date: Fri, 30 Nov 2007 15:33:46 +0000 Subject: [PATCH] Unbreak LOG_LEVEL_FATAL. It wasn't fatal with logging disabled and on mingw32 fatal log messages didn't end up in the log file. --- errlog.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/errlog.c b/errlog.c index 0e672a76..6afe088b 100644 --- a/errlog.c +++ b/errlog.c @@ -1,4 +1,4 @@ -const char errlog_rcs[] = "$Id: errlog.c,v 1.60 2007/11/03 19:03:31 fabiankeil Exp $"; +const char errlog_rcs[] = "$Id: errlog.c,v 1.61 2007/11/04 19:03:01 fabiankeil Exp $"; /********************************************************************* * * File : $Source: /cvsroot/ijbswa/current/errlog.c,v $ @@ -33,6 +33,9 @@ const char errlog_rcs[] = "$Id: errlog.c,v 1.60 2007/11/03 19:03:31 fabiankeil E * * Revisions : * $Log: errlog.c,v $ + * Revision 1.61 2007/11/04 19:03:01 fabiankeil + * Fix another deadlock Hal spotted and that mysteriously didn't affect FreeBSD. + * * Revision 1.60 2007/11/03 19:03:31 fabiankeil * - Prevent the Windows GUI from showing the version two times in a row. * - Stop using the imperative in the "(Re-)Open logfile" message. @@ -431,11 +434,13 @@ static void fatal_error(const char * error_message) /* Cleanup - remove taskbar icon etc. */ TermLogWindow(); - -#else /* if !defined(_WIN32) || defined(_WIN_CONSOLE) */ - fputs(error_message, logfp); #endif /* defined(_WIN32) && !defined(_WIN_CONSOLE) */ + if (logfp != NULL) + { + fputs(error_message, logfp); + } + #if defined(unix) if (pidfile) { @@ -900,7 +905,8 @@ void log_error(int loglevel, const char *fmt, ...) * settings and that logging is enabled. * Bail out otherwise. */ - if ((0 == (loglevel & debug)) || (logfp == NULL)) + if ((loglevel != LOG_LEVEL_FATAL) && + ((0 == (loglevel & debug)) || (logfp == NULL))) { return; } @@ -919,9 +925,6 @@ void log_error(int loglevel, const char *fmt, ...) snprintf(tempbuf, sizeof(tempbuf), "%s Privoxy(%08lx) Fatal error: log_error() failed to allocate buffer memory.\n" "\nExiting.", timestamp, thread_id); - assert(NULL != logfp); - fputs(tempbuf, logfp); - unlock_logfile(); fatal_error(tempbuf); /* Exit */ } } @@ -1139,7 +1142,7 @@ void log_error(int loglevel, const char *fmt, ...) loglevel = LOG_LEVEL_FATAL; } - assert(NULL != logfp); + assert(NULL != logfp || loglevel == LOG_LEVEL_FATAL); if (loglevel == LOG_LEVEL_FATAL) { -- 2.39.2