diff options
author | Rusty Russell <rusty@rustcorp.com.au> | 2015-04-15 13:23:48 +0930 |
---|---|---|
committer | Rusty Russell <rusty@rustcorp.com.au> | 2015-04-15 13:31:23 +0930 |
commit | b9cc4489c68de59f7a38ef4e02a9829465a6a544 (patch) | |
tree | 7c41d3c24c1144146a8da03b04016235347fdb24 | |
parent | e5d8f59a5cfa76ab5ebe47622d0c569eddd42fbe (diff) | |
download | linux-b9cc4489c68de59f7a38ef4e02a9829465a6a544.tar.gz linux-b9cc4489c68de59f7a38ef4e02a9829465a6a544.tar.bz2 linux-b9cc4489c68de59f7a38ef4e02a9829465a6a544.zip |
params: handle quotes properly for values not of form foo="bar".
When starting kernel with arguments like:
init=/bin/sh -c "echo arguments"
the trailing double quote is not removed which results in following command
being executed:
/bin/sh -c 'echo arguments"'
Reported-by: Arthur Gautier <baloo@gandi.net>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
-rw-r--r-- | kernel/params.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/kernel/params.c b/kernel/params.c index 728e05b167de..a22d6a759b1a 100644 --- a/kernel/params.c +++ b/kernel/params.c @@ -173,9 +173,9 @@ static char *next_arg(char *args, char **param, char **val) if (args[i-1] == '"') args[i-1] = '\0'; } - if (quoted && args[i-1] == '"') - args[i-1] = '\0'; } + if (quoted && args[i-1] == '"') + args[i-1] = '\0'; if (args[i]) { args[i] = '\0'; |