summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKen Brown <kbrown@cornell.edu>2017-09-16 22:04:19 -0400
committerCorinna Vinschen <corinna@vinschen.de>2017-10-09 11:44:11 +0200
commit7212b571a5b8ba855c47e16db8cde829a1340a76 (patch)
treee5504591e3653a0de8e58a3815a5e524c74fe176
parent5952d5f08f3200e7b7f65ef8568bfef9b4707940 (diff)
downloadcygnal-7212b571a5b8ba855c47e16db8cde829a1340a76.tar.gz
cygnal-7212b571a5b8ba855c47e16db8cde829a1340a76.tar.bz2
cygnal-7212b571a5b8ba855c47e16db8cde829a1340a76.zip
cygwin: Remove comparison of 'this' to NULL in _pinfo::exists
Fix all callers.
-rw-r--r--winsup/cygwin/fhandler_termios.cc2
-rw-r--r--winsup/cygwin/pinfo.cc2
-rw-r--r--winsup/cygwin/signal.cc2
-rw-r--r--winsup/cygwin/sigproc.cc5
-rw-r--r--winsup/cygwin/times.cc10
5 files changed, 13 insertions, 8 deletions
diff --git a/winsup/cygwin/fhandler_termios.cc b/winsup/cygwin/fhandler_termios.cc
index 19fcfc9cd..4ce53433a 100644
--- a/winsup/cygwin/fhandler_termios.cc
+++ b/winsup/cygwin/fhandler_termios.cc
@@ -131,7 +131,7 @@ tty_min::kill_pgrp (int sig)
for (unsigned i = 0; i < pids.npids; i++)
{
_pinfo *p = pids[i];
- if (!p->exists () || p->ctty != ntty || p->pgid != pgid)
+ if (!p || !p->exists () || p->ctty != ntty || p->pgid != pgid)
continue;
if (p == myself)
killself = sig != __SIGSETPGRP && !exit_state;
diff --git a/winsup/cygwin/pinfo.cc b/winsup/cygwin/pinfo.cc
index 7193f6884..e4eef8b3c 100644
--- a/winsup/cygwin/pinfo.cc
+++ b/winsup/cygwin/pinfo.cc
@@ -529,7 +529,7 @@ _pinfo::set_ctty (fhandler_termios *fh, int flags)
bool __reg1
_pinfo::exists ()
{
- return this && process_state && !(process_state & (PID_EXITED | PID_REAPED | PID_EXECED));
+ return process_state && !(process_state & (PID_EXITED | PID_REAPED | PID_EXECED));
}
bool
diff --git a/winsup/cygwin/signal.cc b/winsup/cygwin/signal.cc
index 016fce1de..69c5e2aad 100644
--- a/winsup/cygwin/signal.cc
+++ b/winsup/cygwin/signal.cc
@@ -332,7 +332,7 @@ kill_pgrp (pid_t pid, siginfo_t& si)
{
_pinfo *p = pids[i];
- if (!p->exists ())
+ if (!p || !p->exists ())
continue;
/* Is it a process we want to kill? */
diff --git a/winsup/cygwin/sigproc.cc b/winsup/cygwin/sigproc.cc
index 36fc64903..92fa5ea3d 100644
--- a/winsup/cygwin/sigproc.cc
+++ b/winsup/cygwin/sigproc.cc
@@ -152,7 +152,8 @@ proc_can_be_signalled (_pinfo *p)
bool __reg1
pid_exists (pid_t pid)
{
- return pinfo (pid)->exists ();
+ pinfo p (pid);
+ return p && p->exists ();
}
/* Return true if this is one of our children, false otherwise. */
@@ -1135,7 +1136,7 @@ remove_proc (int ci)
if (_my_tls._ctinfo != procs[ci].wait_thread)
procs[ci].wait_thread->terminate_thread ();
}
- else if (procs[ci]->exists ())
+ else if (procs[ci] && procs[ci]->exists ())
return true;
sigproc_printf ("removing procs[%d], pid %d, nprocs %d", ci, procs[ci]->pid,
diff --git a/winsup/cygwin/times.cc b/winsup/cygwin/times.cc
index fb480513f..5da0bbc7a 100644
--- a/winsup/cygwin/times.cc
+++ b/winsup/cygwin/times.cc
@@ -522,7 +522,7 @@ clock_gettime (clockid_t clk_id, struct timespec *tp)
pid = getpid ();
pinfo p (pid);
- if (!p->exists ())
+ if (!p || !p->exists ())
{
set_errno (EINVAL);
return -1;
@@ -746,8 +746,12 @@ clock_setres (clockid_t clk_id, struct timespec *tp)
extern "C" int
clock_getcpuclockid (pid_t pid, clockid_t *clk_id)
{
- if (pid != 0 && !pinfo (pid)->exists ())
- return (ESRCH);
+ if (pid != 0)
+ {
+ pinfo p (pid);
+ if (!p || !p->exists ())
+ return (ESRCH);
+ }
*clk_id = (clockid_t) PID_TO_CLOCKID (pid);
return 0;
}