Fix so `ps' catches and complains about null-values specified for a

process id, instead of using pid==0.  Ie, `ps -p 12,' and `ps -p ,12'
are now errors (instead of being treated like `ps -p 0 -p 12').

Noticed by:	Cyrille Lefevre on freebsd-arch
This commit is contained in:
Garance A Drosehn 2004-06-01 03:01:51 +00:00
parent 36568179e3
commit de1702f459
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=129917

View File

@ -674,9 +674,11 @@ addelem_pid(struct listinfo *inf, const char *elem)
char *endp;
long tempid;
if (*elem == '\0')
tempid = 0L;
else {
if (*elem == '\0') {
warnx("Invalid (zero-length) process id");
optfatal = 1;
return (0); /* Do not add this value. */
} else {
errno = 0;
tempid = strtol(elem, &endp, 10);
if (*endp != '\0' || tempid < 0 || elem == endp) {
@ -787,6 +789,9 @@ add_list(struct listinfo *inf, const char *argp)
int toolong;
char elemcopy[PATH_MAX];
if (*argp == 0)
inf->addelem(inf, elemcopy);
while (*argp != '\0') {
while (*argp != '\0' && strchr(W_SEP, *argp) != NULL)
argp++;