diff options
author | Michael Kwasigroch <mkwasigr@web.de> | 2015-11-26 22:30:43 +0100 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2015-11-26 22:31:01 +0100 |
commit | 9471b0b36da94b507196c4db9884ec48e1b3a41b (patch) | |
tree | 31fe3437ef4041495c099ec42a2e4e542e6da958 /winsup/utils | |
parent | 2f4fef955c0e6bb32e0d6c9514fe612171484839 (diff) | |
download | newlib-9471b0b36da94b507196c4db9884ec48e1b3a41b.zip newlib-9471b0b36da94b507196c4db9884ec48e1b3a41b.tar.gz newlib-9471b0b36da94b507196c4db9884ec48e1b3a41b.tar.bz2 |
Fix SEGV of kill -l 0
* kill.cc (strsigno): Don't call sys_sigabbrev for signal 0.
(listsig): Don't call strsigno for signal 0.
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
Diffstat (limited to 'winsup/utils')
-rw-r--r-- | winsup/utils/ChangeLog | 5 | ||||
-rw-r--r-- | winsup/utils/kill.cc | 6 |
2 files changed, 8 insertions, 3 deletions
diff --git a/winsup/utils/ChangeLog b/winsup/utils/ChangeLog index 70c0333..de00ef7 100644 --- a/winsup/utils/ChangeLog +++ b/winsup/utils/ChangeLog @@ -1,3 +1,8 @@ +2015-11-26 Michael Kwasigroch <mkwasigr@web.de> + + * kill.cc (strsigno): Don't call sys_sigabbrev for signal 0. + (listsig): Don't call strsigno for signal 0. + 2015-11-18 Corinna Vinschen <corinna@vinschen.de> * setfacl.c (action_t): Rename DeleteAll to DeleteExt. Add diff --git a/winsup/utils/kill.cc b/winsup/utils/kill.cc index edabff3..2a7d8f6 100644 --- a/winsup/utils/kill.cc +++ b/winsup/utils/kill.cc @@ -1,7 +1,7 @@ /* kill.cc Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, - 2009, 2011 Red Hat, Inc. + 2009, 2011, 2015 Red Hat, Inc. This file is part of Cygwin. @@ -70,7 +70,7 @@ print_version () static const char * strsigno (int signo) { - if (signo >= 0 && signo < NSIG) + if (signo > 0 && signo < NSIG) return sys_sigabbrev[signo]; static char buf[sizeof ("Unknown signal") + 32]; sprintf (buf, "Unknown signal %d", signo); @@ -121,7 +121,7 @@ listsig (const char *in_sig) { sig = getsig (in_sig); test_for_unknown_sig (sig, in_sig); - if (atoi (in_sig) == sig) + if (sig && atoi (in_sig) == sig) puts (strsigno (sig) + 3); else printf ("%d\n", sig); |