From b76b818e6fe2061e778b3a9bbe63c554c3f9b3c1 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Mon, 11 Oct 2010 10:58:31 -0400 Subject: psiginfo relied too much on sys_siglist. --- stdio-common/psiginfo.c | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) (limited to 'stdio-common/psiginfo.c') diff --git a/stdio-common/psiginfo.c b/stdio-common/psiginfo.c index 49b86ec34a..627c21c640 100644 --- a/stdio-common/psiginfo.c +++ b/stdio-common/psiginfo.c @@ -85,9 +85,28 @@ psiginfo (const siginfo_t *pinfo, const char *s) const char *desc; if (pinfo->si_signo >= 0 && pinfo->si_signo < NSIG - && (desc = INTUSE(_sys_siglist)[pinfo->si_signo]) != NULL) + && ((desc = INTUSE(_sys_siglist)[pinfo->si_signo]) != NULL + || (pinfo->si_signo >= SIGRTMIN && pinfo->si_signo < SIGRTMAX))) { - fprintf (fp, "%s (", _(desc)); + if (desc == NULL) + { + if (pinfo->si_signo - SIGRTMIN < SIGRTMAX - pinfo->si_signo) + { + if (pinfo->si_signo == SIGRTMIN) + fprintf (fp, "SIGRTMIN ("); + else + fprintf (fp, "SIGRTMIN+%d (", pinfo->si_signo - SIGRTMIN); + } + else + { + if (pinfo->si_signo == SIGRTMAX) + fprintf (fp, "SIGRTMAX ("); + else + fprintf (fp, "SIGRTMAX-%d (", SIGRTMAX - pinfo->si_signo); + } + } + else + fprintf (fp, "%s (", _(desc)); const char *base = NULL; const uint8_t *offarr = NULL; -- cgit v1.2.3