[PATCH v2 14/14] Log in OsVendorFatalError() in a signal safe manner

Chase Douglas chase.douglas at canonical.com
Mon Apr 9 11:17:40 PDT 2012


The function can be called from a fatal signal handler.

Signed-off-by: Chase Douglas <chase.douglas at canonical.com>
---
 hw/xfree86/common/xf86Init.c |   23 +++++++++++++++--------
 1 files changed, 15 insertions(+), 8 deletions(-)

diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c
index 2a7d0a3..bfc9c93 100644
--- a/hw/xfree86/common/xf86Init.c
+++ b/hw/xfree86/common/xf86Init.c
@@ -1056,16 +1056,23 @@ void
 OsVendorFatalError(const char *f, va_list args)
 {
 #ifdef VENDORSUPPORT
-    ErrorF("\nPlease refer to your Operating System Vendor support pages\n"
-           "at %s for support on this crash.\n", VENDORSUPPORT);
+    LogMessageVerbSigSafe(X_NONE, -1,
+                          "\nPlease refer to your Operating System Vendor "
+                          "support pages\nat ");
+    LogMessageVerbSigSafe(X_NONE, -1, VENDORSUPPORT);
+    LogMessageVerbSigSafe(X_NONE, -1, " for support on this crash.\n");
 #else
-    ErrorF("\nPlease consult the " XVENDORNAME " support \n"
-           "\t at " __VENDORDWEBSUPPORT__ "\n for help. \n");
+    LogMessageVerbSigSafe(X_NONE, -1,
+                          "\nPlease consult the " XVENDORNAME " support \n"
+                          "\t at " __VENDORDWEBSUPPORT__ "\n for help. \n");
 #endif
-    if (xf86LogFile && xf86LogFileWasOpened)
-        ErrorF("Please also check the log file at \"%s\" for additional "
-               "information.\n", xf86LogFile);
-    ErrorF("\n");
+    if (xf86LogFile && xf86LogFileWasOpened) {
+        LogMessageVerbSigSafe(X_NONE, -1,
+                              "Please also check the log file at \"");
+        LogMessageVerbSigSafe(X_NONE, -1, xf86LogFile);
+        LogMessageVerbSigSafe(X_NONE, -1, " for additional information.\n");
+    }
+    LogMessageVerbSigSafe(X_NONE, -1, "\n");
 }
 
 int
-- 
1.7.9.1



More information about the xorg-devel mailing list