diff options
author | Ulrich Drepper <drepper@gmail.com> | 2010-10-11 10:58:31 -0400 |
---|---|---|
committer | Ulrich Drepper <drepper@gmail.com> | 2010-10-11 10:58:31 -0400 |
commit | b76b818e6fe2061e778b3a9bbe63c554c3f9b3c1 (patch) | |
tree | 419c31b08cd21e8146b689035e766a22192a2fc2 | |
parent | 1751705d1c4e8b7aba391391d1d8d88fe8c9d8b8 (diff) | |
download | glibc-b76b818e6fe2061e778b3a9bbe63c554c3f9b3c1.tar glibc-b76b818e6fe2061e778b3a9bbe63c554c3f9b3c1.tar.gz glibc-b76b818e6fe2061e778b3a9bbe63c554c3f9b3c1.tar.bz2 glibc-b76b818e6fe2061e778b3a9bbe63c554c3f9b3c1.zip |
psiginfo relied too much on sys_siglist.
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | NEWS | 2 | ||||
-rw-r--r-- | stdio-common/psiginfo.c | 23 |
3 files changed, 26 insertions, 3 deletions
@@ -1,5 +1,9 @@ 2010-10-11 Ulrich Drepper <drepper@gmail.com> + [BZ #12108] + * stdio-common/psiginfo.c (psiginfo): Don't expext SIGRTMIN..SIGRTMAX + to have entries in sys_siglist. + [BZ #12093] * sysdeps/unix/sysv/linux/check_pf.c (__check_pf): ->ifa_addr might be NULL. @@ -10,7 +10,7 @@ Version 2.13 * The following bugs are resolved with this release: 3268, 7066, 10851, 11611, 11640, 11701, 11840, 11856, 11883, 11903, 11904, - 11968, 11979, 12005, 12037, 12067, 12077, 12092, 12093, 12107 + 11968, 11979, 12005, 12037, 12067, 12077, 12092, 12093, 12107, 12108 * New Linux interfaces: prlimit, prlimit64, fanotify_init, fanotify_mark 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; |