From 0dd3c0b05c4cd5efa124c7fe42ba7aac2965ddad Mon Sep 17 00:00:00 2001 From: andersen Date: Mon, 12 Mar 2001 21:36:49 +0000 Subject: A fix from Larry Doolittle for some nasty segfaults when sh.c tried to free a corrupted cmd pointer, and where it would truncate a command line at the first double space. -Erik git-svn-id: svn://busybox.net/trunk/busybox@2047 69ca8d6d-28ef-0310-b511-8ec308f3f277 --- sh.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'sh.c') diff --git a/sh.c b/sh.c index d321c929b..67d6e4f51 100644 --- a/sh.c +++ b/sh.c @@ -970,10 +970,10 @@ static int expand_arguments(char *command) { int flags = GLOB_NOCHECK|GLOB_BRACE|GLOB_TILDE; - char * tmpcmd; + char * tmpcmd, *cmd, *cmd_copy; /* We need a clean copy, so strsep can mess up the copy while * we write stuff into the original (in a minute) */ - char * cmd = strdup(command); + cmd = cmd_copy = strdup(command); *command = '\0'; for (tmpcmd = cmd; (tmpcmd = strsep(&cmd, " \t")) != NULL;) { if (*tmpcmd == '\0') @@ -1006,7 +1006,7 @@ static int expand_arguments(char *command) globfree (&expand_result); } } - free(cmd); + free(cmd_copy); trim(command); } -- cgit v1.2.3-55-g6feb