diff --git a/src/libpcp/src/util.c b/src/libpcp/src/util.c index a09aa97..052c900 100644 --- a/src/libpcp/src/util.c +++ b/src/libpcp/src/util.c @@ -1157,7 +1157,16 @@ __pmProcessExists(pid_t pid) int __pmProcessTerminate(pid_t pid, int force) { - return kill(pid, force ? SIGKILL : SIGTERM); + if (pid != 0 && pid != -1) + return kill(pid, force ? SIGKILL : SIGTERM); + else { + /* + * sending KILL or TERM to all processes in a process group + * is just too dangerous ... + */ + return -EINVAL; + } + } #elif !defined(IS_MINGW) !bozo!