diff options
author | Gerrit Pape <pape@smarden.org> | 2010-05-03 11:14:47 +0800 |
---|---|---|
committer | maximilian attems <max@stro.at> | 2011-06-03 18:04:46 +0200 |
commit | 9d2bc6ea26d8b14fab0d78288db96cc06cef4545 (patch) | |
tree | 4e5771ca9e197ddc338f332dffff8f25e492df03 | |
parent | a74424afaa20545bdd6e8b802e2e55d9012c83af (diff) | |
download | klibc-9d2bc6ea26d8b14fab0d78288db96cc06cef4545.tar.gz |
[klibc] [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>
Signed-off-by: maximilian attems <max@stro.at>
-rw-r--r-- | usr/dash/eval.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/usr/dash/eval.c b/usr/dash/eval.c index 876ea9b1a802b..65562f1a8354c 100644 --- a/usr/dash/eval.c +++ b/usr/dash/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 { |