summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKen Brown <kbrown@cornell.edu>2017-09-16 22:04:18 -0400
committerCorinna Vinschen <corinna@vinschen.de>2017-10-09 11:44:11 +0200
commit5952d5f08f3200e7b7f65ef8568bfef9b4707940 (patch)
treeb4bdcf8f4cb64965334b43d7af74550f08bebc15
parentd17c45f200c3b68fe1c99e413b0444366bfd9290 (diff)
downloadcygnal-5952d5f08f3200e7b7f65ef8568bfef9b4707940.tar.gz
cygnal-5952d5f08f3200e7b7f65ef8568bfef9b4707940.tar.bz2
cygnal-5952d5f08f3200e7b7f65ef8568bfef9b4707940.zip
cygwin: Remove comparison of 'this' to 'NULL' in _pinfo::kill
Fix all callers.
-rw-r--r--winsup/cygwin/signal.cc15
1 files changed, 12 insertions, 3 deletions
diff --git a/winsup/cygwin/signal.cc b/winsup/cygwin/signal.cc
index fbd2b241e..016fce1de 100644
--- a/winsup/cygwin/signal.cc
+++ b/winsup/cygwin/signal.cc
@@ -260,7 +260,7 @@ _pinfo::kill (siginfo_t& si)
}
this_pid = pid;
}
- else if (this && process_state == PID_EXITED)
+ else if (process_state == PID_EXITED)
{
this_process_state = process_state;
this_pid = pid;
@@ -296,8 +296,17 @@ kill0 (pid_t pid, siginfo_t& si)
syscall_printf ("signal %d out of range", si.si_signo);
return -1;
}
-
- return (pid > 0) ? pinfo (pid)->kill (si) : kill_pgrp (-pid, si);
+ if (pid > 0)
+ {
+ pinfo p (pid);
+ if (!p)
+ {
+ set_errno (ESRCH);
+ return -1;
+ }
+ return p->kill (si);
+ }
+ return kill_pgrp (-pid, si);
}
int