os: Use ErrorFSigSafe from FatalError and it's friends

Backtrace logging etc. is already sigsafe, but the actual FatalError message
in response is not yet, leading to amusing logs like this:

    (EE) Segmentation fault at address 0x0
    (EE) BUG: triggered 'if (inSignalContext)'
    (EE) BUG: log.c:499 in LogVMessageVerb()
    (EE) Warning: attempting to log data in a signal unsafe manner while in
    signal context.
    Please update to check inSignalContext and/or use LogMessageVerbSigSafe() or
    ErrorFSigSafe().
    The offending log format message is:

    Fatal server error:

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
This commit is contained in:
Peter Hutterer 2013-04-30 15:44:37 +10:00
parent d9848fb4b1
commit 042c6d861f
3 changed files with 7 additions and 7 deletions

View File

@ -889,7 +889,7 @@ glxDRILeaveVT(ScrnInfoPtr scrn)
__GLXDRIscreen *screen = (__GLXDRIscreen *)
glxGetScreen(xf86ScrnToScreen(scrn));
LogMessage(X_INFO, "AIGLX: Suspending AIGLX clients for VT switch\n");
LogMessageVerbSigSafe(X_INFO, -1, "AIGLX: Suspending AIGLX clients for VT switch\n");
glxSuspendClients();

View File

@ -835,7 +835,7 @@ glxDRILeaveVT(ScrnInfoPtr scrn)
__GLXDRIscreen *screen = (__GLXDRIscreen *)
glxGetScreen(xf86ScrnToScreen(scrn));
LogMessage(X_INFO, "AIGLX: Suspending AIGLX clients for VT switch\n");
LogMessageVerbSigSafe(X_INFO, -1, "AIGLX: Suspending AIGLX clients for VT switch\n");
glxSuspendClients();

View File

@ -250,7 +250,7 @@ void
LogClose(enum ExitCode error)
{
if (logFile) {
ErrorF("Server terminated %s (%d). Closing log file.\n",
ErrorFSigSafe("Server terminated %s (%d). Closing log file.\n",
(error == EXIT_NO_ERROR) ? "successfully" : "with error", error);
fclose(logFile);
logFile = NULL;
@ -878,9 +878,9 @@ FatalError(const char *f, ...)
static Bool beenhere = FALSE;
if (beenhere)
ErrorF("\nFatalError re-entered, aborting\n");
ErrorFSigSafe("\nFatalError re-entered, aborting\n");
else
ErrorF("\nFatal server error:\n");
ErrorFSigSafe("\nFatal server error:\n");
va_start(args, f);
@ -897,9 +897,9 @@ FatalError(const char *f, ...)
va_end(apple_args);
}
#endif
VErrorF(f, args);
VErrorFSigSafe(f, args);
va_end(args);
ErrorF("\n");
ErrorFSigSafe("\n");
if (!beenhere)
OsVendorFatalError(f, args2);
va_end(args2);