From e2f32c02b149f5a128c634231a0ef12d03843967 Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Thu, 29 Oct 2015 19:46:40 +0100 Subject: ash: fix command -- crash busybox sh -c 'command --' segfaults because parse_command_args returns a pointer to a null pointer. Based on commit 18071c7 from git://git.kernel.org/pub/scm/utils/dash/dash.git by Gerrit Pape. Signed-off-by: Denys Vlasenko --- shell/ash.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'shell/ash.c') diff --git a/shell/ash.c b/shell/ash.c index 18c7ff5..8f0a5e0 100644 --- a/shell/ash.c +++ b/shell/ash.c @@ -8878,14 +8878,15 @@ parse_command_args(char **argv, const char **path) for (;;) { cp = *++argv; if (!cp) - return 0; + return NULL; if (*cp++ != '-') break; c = *cp++; if (!c) break; if (c == '-' && !*cp) { - argv++; + if (!*++argv) + return NULL; break; } do { @@ -8895,7 +8896,7 @@ parse_command_args(char **argv, const char **path) break; default: /* run 'typecmd' for other options */ - return 0; + return NULL; } c = *cp++; } while (c); -- cgit v1.1