From d64e62ef11fc9e37acd19d77d4927538ba755787 Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Tue, 22 May 2012 08:57:22 +0000 Subject: Danek: 30485: trailing garbage after signal number not recognised in kill --- Src/jobs.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'Src') diff --git a/Src/jobs.c b/Src/jobs.c index b17060175..c9c549e1e 100644 --- a/Src/jobs.c +++ b/Src/jobs.c @@ -2164,10 +2164,15 @@ bin_kill(char *nam, char **argv, UNUSED(Options ops), UNUSED(int func)) /* check for, and interpret, a signal specifier */ if (*argv && **argv == '-') { - if (idigit((*argv)[1])) + if (idigit((*argv)[1])) { + char *endp; /* signal specified by number */ - sig = atoi(*argv + 1); - else if ((*argv)[1] != '-' || (*argv)[2]) { + sig = zstrtol(*argv + 1, &endp, 10); + if (*endp) { + zwarnnam(nam, "invalid signal number: %s", *argv); + return 1; + } + } else if ((*argv)[1] != '-' || (*argv)[2]) { char *signame; /* with argument "-l" display the list of signal names */ -- cgit 1.4.1