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 /src | |
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>
Diffstat (limited to '')
-rw-r--r-- | src/eval.c | 3 |
1 files changed, 2 insertions, 1 deletions
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 { |