aboutsummaryrefslogtreecommitdiff
path: root/procps
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2009-08-14 22:33:10 +0200
committerDenys Vlasenko <vda.linux@googlemail.com>2009-08-14 22:33:10 +0200
commit16d1e3c26fc2908d430aa94cc76227028b0fffc7 (patch)
treec0234376bfa1f9eac49341f1f8add9c7b29b9214 /procps
parent5da42fce51a9913e2c4359b71f4184dba0ad4310 (diff)
downloadbusybox-w32-16d1e3c26fc2908d430aa94cc76227028b0fffc7.tar.gz
busybox-w32-16d1e3c26fc2908d430aa94cc76227028b0fffc7.tar.bz2
busybox-w32-16d1e3c26fc2908d430aa94cc76227028b0fffc7.zip
pgrep: match argv[0] too, not only comm; fix a bug in argv sanitization
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'procps')
-rw-r--r--procps/pgrep.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/procps/pgrep.c b/procps/pgrep.c
index aef4f229a..3a717ecff 100644
--- a/procps/pgrep.c
+++ b/procps/pgrep.c
@@ -92,7 +92,7 @@ int pgrep_main(int argc UNUSED_PARAM, char **argv)
92 if (sid2match == 0) 92 if (sid2match == 0)
93 sid2match = getsid(pid); 93 sid2match = getsid(pid);
94 94
95 scan_mask = PSSCAN_COMM; 95 scan_mask = PSSCAN_COMM | PSSCAN_ARGV0;
96 if (OPT_FULL) 96 if (OPT_FULL)
97 scan_mask |= PSSCAN_ARGVN; 97 scan_mask |= PSSCAN_ARGVN;
98 98
@@ -117,9 +117,9 @@ int pgrep_main(int argc UNUSED_PARAM, char **argv)
117 cmd = proc->comm; 117 cmd = proc->comm;
118 } else { 118 } else {
119 int i = proc->argv_len; 119 int i = proc->argv_len;
120 while (i) { 120 while (--i >= 0) {
121 if (!cmd[i]) cmd[i] = ' '; 121 if ((unsigned char)cmd[i] < ' ')
122 i--; 122 cmd[i] = ' ';
123 } 123 }
124 } 124 }
125 125