diff options
author | Tobias Klauser <tklauser@distanz.ch> | 2015-12-10 08:59:34 +0100 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2016-06-06 19:55:24 +0800 |
commit | 16cde63e05519c770daa69345b8cf37fb31eaa2a (patch) | |
tree | e23b98863509b0b0cb9d1223703a97b9a4c0f167 | |
parent | builtin: Reject malformed printf specifications with digits after '*' (diff) | |
download | dash-16cde63e05519c770daa69345b8cf37fb31eaa2a.tar.gz dash-16cde63e05519c770daa69345b8cf37fb31eaa2a.zip |
jobs: Don't attempt to access job table for job %0
If job %0 is (mistakenly) specified, an out-of-bounds access to the jobtab occurs in function getjob() if num = 0: jp = jobtab + 0 - 1 Fix this by checking that the job number is larger than 0 before accessing the jobtab. Signed-off-by: Tobias Klauser <tklauser@distanz.ch> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
-rw-r--r-- | src/jobs.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/jobs.c b/src/jobs.c index c2c2332..3997863 100644 --- a/src/jobs.c +++ b/src/jobs.c @@ -699,7 +699,7 @@ check: if (is_number(p)) { num = atoi(p); - if (num <= njobs) { + if (num > 0 && num <= njobs) { jp = jobtab + num - 1; if (jp->used) goto gotit; |