diff --git a/winsup/cygwin/external.cc b/winsup/cygwin/external.cc index c81bdc0fa..6aae32aea 100644 --- a/winsup/cygwin/external.cc +++ b/winsup/cygwin/external.cc @@ -339,7 +339,7 @@ cygwin_internal (cygwin_getinfo_types t, ...) size_t n; pid_t pid = va_arg (arg, pid_t); pinfo p (pid); - res = (uintptr_t) p->cmdline (n); + res = (uintptr_t) (p ? p->cmdline (n) : NULL); } break; case CW_CHECK_NTSEC: diff --git a/winsup/cygwin/fhandler_process.cc b/winsup/cygwin/fhandler_process.cc index 453e79b16..7f122fbe4 100644 --- a/winsup/cygwin/fhandler_process.cc +++ b/winsup/cygwin/fhandler_process.cc @@ -518,7 +518,7 @@ format_process_cmdline (void *data, char *&destbuf) cfree (destbuf); destbuf = NULL; } - destbuf = p->cmdline (fs); + destbuf = p ? p->cmdline (fs) : NULL; if (!destbuf || !*destbuf) { destbuf = cstrdup (""); diff --git a/winsup/cygwin/pinfo.cc b/winsup/cygwin/pinfo.cc index c28158168..e792a0a1c 100644 --- a/winsup/cygwin/pinfo.cc +++ b/winsup/cygwin/pinfo.cc @@ -976,7 +976,7 @@ char * _pinfo::cmdline (size_t& n) { char *s = NULL; - if (!this || !pid) + if (!pid) return NULL; if (ISSTATE (this, PID_NOTCYGWIN)) {