From: RĂ©mi Denis-Courmont Date: Sun, 11 Apr 2010 15:37:52 +0000 (+0300) Subject: Log dangerous registration of signal handlers X-Git-Tag: 1.1.0-pre1~36 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=2eb05547c95e390ecab9f047beb7c4098f656ff2;hp=4213a133fd1ef14fd9b62620412a45af091d73ae;p=vlc Log dangerous registration of signal handlers --- diff --git a/bin/override.c b/bin/override.c index 2f7606ba56..1eabda0135 100644 --- a/bin/override.c +++ b/bin/override.c @@ -147,4 +147,30 @@ int rand (void) } +/** Signals **/ +#include + +void (*signal (int signum, void (*handler) (int))) (int) +{ + if (override) + { + const char *msg = "Error"; + + if ((signum == SIGPIPE && handler == SIG_IGN) + || (signum != SIGPIPE && handler == SIG_DFL)) + /* Same settings we already use */ + msg = "Warning"; + LOG(msg, "%d, %p", signum, handler); + } + return CALL(signal, signum, handler); +} + +int sigaction (int signum, const struct sigaction *act, struct sigaction *old) +{ + if (act != NULL) + LOG("Error", "%d, %p, %p", signum, act, old); + return CALL(sigaction, signum, act, old); +} + + #endif /* __ELF__ */