/*
* Utility routines.
*
- * Copyright (C) 1999,2000,2001 by Erik Andersen <andersee@debian.org>
+ * Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
#include <stdlib.h>
#include "libbb.h"
+#define COMM_LEN 16 /* synchronize with size of comm in struct task_struct
+ in /usr/include/linux/sched.h */
+
+
/* find_pid_by_name()
- *
+ *
* Modified by Vladimir Oleynik for use with libbb/procps.c
* This finds the pid of the specified process.
- * Currently, it's implemented by rummaging through
+ * Currently, it's implemented by rummaging through
* the proc filesystem.
*
* Returns a list of all matching PIDs
procps_status_t * p;
pidList = xmalloc(sizeof(long));
-#ifdef CONFIG_SELINUX
- while ((p = procps_scan(0, 0, NULL)) != 0) {
-#else
- while ((p = procps_scan(0)) != 0) {
-#endif
- if (strcmp(p->short_cmd, pidName) == 0) {
+ while ((p = procps_scan(0)) != 0)
+ {
+ if (strncmp(p->short_cmd, pidName, COMM_LEN-1) == 0) {
pidList=xrealloc( pidList, sizeof(long) * (i+2));
pidList[i++]=p->pid;
}