Revert "os: log: make LogVMessageVerb() signal safe"
This reverts commit 5962211612.
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/2036>
This commit is contained in:
parent
6a9b2f37bb
commit
4916da381b
|
|
@ -327,6 +327,9 @@ _X_ATTRIBUTE_PRINTF(2, 3);
|
||||||
extern _X_EXPORT void
|
extern _X_EXPORT void
|
||||||
LogMessageVerbSigSafe(MessageType type, int verb, const char *format, ...)
|
LogMessageVerbSigSafe(MessageType type, int verb, const char *format, ...)
|
||||||
_X_ATTRIBUTE_PRINTF(3, 4);
|
_X_ATTRIBUTE_PRINTF(3, 4);
|
||||||
|
extern _X_EXPORT void
|
||||||
|
LogVMessageVerbSigSafe(MessageType type, int verb, const char *format, va_list args)
|
||||||
|
_X_ATTRIBUTE_PRINTF(3, 0);
|
||||||
|
|
||||||
extern _X_EXPORT void
|
extern _X_EXPORT void
|
||||||
LogVHdrMessageVerb(MessageType type, int verb,
|
LogVHdrMessageVerb(MessageType type, int verb,
|
||||||
|
|
@ -376,9 +379,6 @@ xorg_backtrace(void);
|
||||||
typedef _sigset_t sigset_t;
|
typedef _sigset_t sigset_t;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* should not be used anymore, just for backwards compat with drivers */
|
|
||||||
#define LogVMessageVerbSigSafe(...) LogVMessageVerb(__VA_ARGS__)
|
|
||||||
|
|
||||||
/* only for backwards compat with drivers that haven't kept up yet
|
/* only for backwards compat with drivers that haven't kept up yet
|
||||||
(xf86-video-intel)
|
(xf86-video-intel)
|
||||||
|
|
||||||
|
|
|
||||||
32
os/log.c
32
os/log.c
|
|
@ -680,17 +680,21 @@ static inline void writeLog(int verb, char *buf, int len)
|
||||||
LogSWrite(verb, buf, len, (buf[len - 1] == '\n'));
|
LogSWrite(verb, buf, len, (buf[len - 1] == '\n'));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* signal safe */
|
|
||||||
void
|
void
|
||||||
LogVMessageVerb(MessageType type, int verb, const char *format, va_list args)
|
LogVMessageVerb(MessageType type, int verb, const char *format, va_list args)
|
||||||
{
|
{
|
||||||
char buf[LOG_MSG_BUF_SIZE];
|
char buf[LOG_MSG_BUF_SIZE];
|
||||||
|
|
||||||
|
if (inSignalContext) {
|
||||||
|
LogVMessageVerbSigSafe(type, verb, format, args);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
size_t len = prepMsgHdr(type, verb, buf);
|
size_t len = prepMsgHdr(type, verb, buf);
|
||||||
if (len == -1)
|
if (len == -1)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
len += vpnprintf(&buf[len], sizeof(buf) - len, format, args);
|
len += Xvscnprintf(&buf[len], sizeof(buf) - len, format, args);
|
||||||
|
|
||||||
writeLog(verb, buf, len);
|
writeLog(verb, buf, len);
|
||||||
}
|
}
|
||||||
|
|
@ -723,25 +727,41 @@ LogMessageVerbSigSafe(MessageType type, int verb, const char *format, ...)
|
||||||
{
|
{
|
||||||
va_list ap;
|
va_list ap;
|
||||||
va_start(ap, format);
|
va_start(ap, format);
|
||||||
LogVMessageVerb(type, verb, format, ap);
|
LogVMessageVerbSigSafe(type, verb, format, ap);
|
||||||
va_end(ap);
|
va_end(ap);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
LogVMessageVerbSigSafe(MessageType type, int verb, const char *format, va_list args)
|
||||||
|
{
|
||||||
|
char buf[LOG_MSG_BUF_SIZE];
|
||||||
|
|
||||||
|
int len = prepMsgHdr(type, verb, buf);
|
||||||
|
if (len == -1)
|
||||||
|
return;
|
||||||
|
|
||||||
|
len += vpnprintf(&buf[len], sizeof(buf) - len, format, args);
|
||||||
|
|
||||||
|
writeLog(verb, buf, len);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
LogVHdrMessageVerb(MessageType type, int verb, const char *msg_format,
|
LogVHdrMessageVerb(MessageType type, int verb, const char *msg_format,
|
||||||
va_list msg_args, const char *hdr_format, va_list hdr_args)
|
va_list msg_args, const char *hdr_format, va_list hdr_args)
|
||||||
{
|
{
|
||||||
char buf[LOG_MSG_BUF_SIZE];
|
char buf[LOG_MSG_BUF_SIZE];
|
||||||
|
int (*vprintf_func)(char *, int, const char* _X_RESTRICT_KYWD f, va_list args)
|
||||||
|
_X_ATTRIBUTE_PRINTF(3, 0) = (inSignalContext ? vpnprintf : Xvscnprintf);
|
||||||
|
|
||||||
size_t len = prepMsgHdr(type, verb, buf);
|
size_t len = prepMsgHdr(type, verb, buf);
|
||||||
if (len == -1)
|
if (len == -1)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (hdr_format && sizeof(buf) - len > 1)
|
if (hdr_format && sizeof(buf) - len > 1)
|
||||||
len += vpnprintf(&buf[len], sizeof(buf) - len, hdr_format, hdr_args);
|
len += vprintf_func(&buf[len], sizeof(buf) - len, hdr_format, hdr_args);
|
||||||
|
|
||||||
if (msg_format && sizeof(buf) - len > 1)
|
if (msg_format && sizeof(buf) - len > 1)
|
||||||
len += vpnprintf(&buf[len], sizeof(buf) - len, msg_format, msg_args);
|
len += vprintf_func(&buf[len], sizeof(buf) - len, msg_format, msg_args);
|
||||||
|
|
||||||
writeLog(verb, buf, len);
|
writeLog(verb, buf, len);
|
||||||
}
|
}
|
||||||
|
|
@ -921,7 +941,7 @@ ErrorF(const char *f, ...)
|
||||||
void
|
void
|
||||||
VErrorFSigSafe(const char *f, va_list args)
|
VErrorFSigSafe(const char *f, va_list args)
|
||||||
{
|
{
|
||||||
LogVMessageVerb(X_ERROR, -1, f, args);
|
LogVMessageVerbSigSafe(X_ERROR, -1, f, args);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue