diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2016-09-29 01:10:08 +0200 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2016-09-29 01:10:08 +0200 |
commit | 46a45ce02f2c6e775d437c66c5965458bb5d35d8 (patch) | |
tree | 977aa16c16b9a8544e858ffb7f1a3ed9f9365e95 | |
parent | 928e2a7ef437138a7b05e02be2e0f4b10123766c (diff) | |
download | busybox-46a45ce02f2c6e775d437c66c5965458bb5d35d8.tar.gz |
ash: jobs: Don't attempt to access job table for job %0
Upstream commit:
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>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r-- | shell/ash.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/shell/ash.c b/shell/ash.c index d0c0a510c..a31cee259 100644 --- a/shell/ash.c +++ b/shell/ash.c @@ -3654,7 +3654,7 @@ getjob(const char *name, int getctl) if (is_number(p)) { num = atoi(p); - if (num <= njobs) { + if (num > 0 && num <= njobs) { jp = jobtab + num - 1; if (jp->used) goto gotit; |