diff --git a/hw/xwayland/xwayland-screen.c b/hw/xwayland/xwayland-screen.c index ac7fa35a3..5bc3551e3 100644 --- a/hw/xwayland/xwayland-screen.c +++ b/hw/xwayland/xwayland-screen.c @@ -90,7 +90,7 @@ xwl_give_up(const char *f, ...) va_list args; va_start(args, f); - VErrorF(f, args); + VErrorFSigSafe(f, args); va_end(args); CloseWellKnownConnections(); diff --git a/include/os.h b/include/os.h index 04f47db52..67b1cfbb3 100644 --- a/include/os.h +++ b/include/os.h @@ -356,6 +356,9 @@ extern _X_EXPORT void ErrorF(const char *f, ...) _X_ATTRIBUTE_PRINTF(1, 2); extern _X_EXPORT void +VErrorFSigSafe(const char *f, va_list args) +_X_ATTRIBUTE_PRINTF(1, 0); +extern _X_EXPORT void LogPrintMarkers(void); extern _X_EXPORT void @@ -371,7 +374,6 @@ typedef _sigset_t sigset_t; #define LogVMessageVerbSigSafe(...) LogVMessageVerb(__VA_ARGS__) #define LogMessageVerbSigSafe(...) LogMessageVerb(__VA_ARGS__) #define ErrorFSigSafe(...) ErrorF(__VA_ARGS__) -#define VErrorFSigSafe(...) VErrorF(__VA_ARGS__) /* only for backwards compat with drivers that haven't kept up yet (xf86-video-intel) diff --git a/os/log.c b/os/log.c index 3e87b9541..58a39c5c0 100644 --- a/os/log.c +++ b/os/log.c @@ -875,7 +875,7 @@ FatalError(const char *f, ...) va_end(apple_args); } #endif - VErrorF(f, args); + VErrorFSigSafe(f, args); va_end(args); ErrorF("\n"); if (!beenhere) @@ -908,6 +908,12 @@ ErrorF(const char *f, ...) va_end(args); } +void +VErrorFSigSafe(const char *f, va_list args) +{ + LogVMessageVerb(X_ERROR, -1, f, args); +} + void LogPrintMarkers(void) {