diff options
author | Ken Brown <kbrown@cornell.edu> | 2017-09-16 22:04:18 -0400 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2017-10-09 11:44:11 +0200 |
commit | 5952d5f08f3200e7b7f65ef8568bfef9b4707940 (patch) | |
tree | b4bdcf8f4cb64965334b43d7af74550f08bebc15 | |
parent | d17c45f200c3b68fe1c99e413b0444366bfd9290 (diff) | |
download | cygnal-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.cc | 15 |
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 |