This is the mail archive of the cygwin-cvs@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[newlib-cygwin] Fix SEGV of kill -l 0


https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=9471b0b36da94b507196c4db9884ec48e1b3a41b

commit 9471b0b36da94b507196c4db9884ec48e1b3a41b
Author: Michael Kwasigroch <mkwasigr@web.de>
Date:   Thu Nov 26 22:30:43 2015 +0100

    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>

Diff:
---
 winsup/utils/ChangeLog | 5 +++++
 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);


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]