From: Timo Sirainen Date: Fri, 28 Aug 2009 15:05:12 +0000 (-0400) Subject: Solaris: Don't crash when signal handler is called with siginfo_t=NULL. X-Git-Tag: 2.0.alpha1~236 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=94a1aac0916108152fc97f5cf94e7095ac7fcbbd;p=thirdparty%2Fdovecot%2Fcore.git Solaris: Don't crash when signal handler is called with siginfo_t=NULL. --HG-- branch : HEAD --- diff --git a/src/lib/lib-signals.c b/src/lib/lib-signals.c index 9621b2aad5..fe13c170b3 100644 --- a/src/lib/lib-signals.c +++ b/src/lib/lib-signals.c @@ -34,6 +34,10 @@ const char *lib_signal_code_to_str(int signo, int sicode) { /* common */ switch (sicode) { +#ifdef SI_NOINFO + case SI_NOINFO: + return ""; +#endif case SI_USER: return "kill"; #ifdef SI_KERNEL @@ -75,6 +79,18 @@ static void sig_handler(int signo, siginfo_t *si, void *context ATTR_UNUSED) struct signal_handler *h; char c = 0; +#ifdef SI_NOINFO + siginfo_t tmp_si; + + if (si == NULL) { + /* Solaris can leave this to NULL */ + memset(&tmp_si, 0, sizeof(tmp_si)); + tmp_si.si_signo = signo; + tmp_si.si_code = SI_NOINFO; + si = &tmp_si; + } +#endif + if (signo < 0 || signo > MAX_SIGNAL_VALUE) return;