Bug #3248 » 0002-kill-1-Don-t-kill-pid-1-on-overflow-from-strtol-3.patch
bin/kill/kill.c | ||
---|---|---|
int
|
||
main(int argc, char **argv)
|
||
{
|
||
int errors, numsig;
|
||
long pidl;
|
||
pid_t pid;
|
||
int errors, numsig, ret;
|
||
char *ep;
|
||
if (argc < 2)
|
||
... | ... | |
else
|
||
#endif
|
||
{
|
||
pid = (pid_t)strtol(*argv, &ep, 10);
|
||
if (**argv == '\0' || *ep != '\0')
|
||
pidl = strtol(*argv, &ep, 10);
|
||
/* check for overflow of pid_t. */
|
||
pid = (pid_t)pidl;
|
||
if (!**argv || *ep || pid != pidl)
|
||
errx(2, "illegal process id: %s", *argv);
|
||
}
|
||
if (kill(pid, numsig) == -1) {
|