Mercurial > dovecot > original-hg > dovecot-1.2
changeset 9340:cc4af8e31175 HEAD
Solaris: Don't crash when signal handler is called with siginfo_t=NULL.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Fri, 28 Aug 2009 11:04:53 -0400 |
parents | 355d5a40f7a7 |
children | ff4c1e9f47a4 |
files | src/lib/lib-signals.c |
diffstat | 1 files changed, 16 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib/lib-signals.c Tue Aug 25 09:30:11 2009 -0400 +++ b/src/lib/lib-signals.c Fri Aug 28 11:04:53 2009 -0400 @@ -34,6 +34,10 @@ { /* common */ switch (sicode) { +#ifdef SI_NOINFO + case SI_NOINFO: + return ""; +#endif case SI_USER: return "kill"; #ifdef SI_KERNEL @@ -75,6 +79,18 @@ 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;