diff options
author | Gerrit Pape <pape@smarden.org> | 2010-05-03 11:14:47 +0800 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2010-05-03 11:14:47 +0800 |
commit | 18071c7b6a847a7d8703c261eea522d5398fee90 (patch) | |
tree | 9bf3d69e0bc98e91c5e9c406c95a8112b30a7c04 | |
parent | [JOBS] Fix for job control off warning (diff) | |
download | dash-18071c7b6a847a7d8703c261eea522d5398fee90.tar.gz dash-18071c7b6a847a7d8703c261eea522d5398fee90.zip |
[EVAL] Fix command -- crash
parse_command_args() returning a **argv pointer with *argv == 0 makes dash segfault in find_command(). To reproduce run dash -c 'command --' With this commit, parse_command_args() returns 0 if *argv is null after parsing --, and so fixes the subsequent segfault. Reported by Jonny through http://bugs.debian.org/579543 Signed-off-by: Gerrit Pape <pape@smarden.org> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | src/eval.c | 3 |
2 files changed, 6 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog index bb869f2..ee78154 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2010-05-03 Gerrit Pape <pape@smarden.org> + + * Fix command -- crash. + 2010-04-15 H. Peter Anvin <hpa@zytor.com> * Fix for job control off warning. diff --git a/src/eval.c b/src/eval.c index 2f195af..62d9d5d 100644 --- a/src/eval.c +++ b/src/eval.c @@ -651,7 +651,8 @@ parse_command_args(char **argv, const char **path) if (!(c = *cp++)) break; if (c == '-' && !*cp) { - argv++; + if (!*++argv) + return 0; break; } do { |