summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRusty Russell <rusty@rustcorp.com.au>2015-04-15 13:23:48 +0930
committerRusty Russell <rusty@rustcorp.com.au>2015-04-15 13:31:23 +0930
commitb9cc4489c68de59f7a38ef4e02a9829465a6a544 (patch)
tree7c41d3c24c1144146a8da03b04016235347fdb24
parente5d8f59a5cfa76ab5ebe47622d0c569eddd42fbe (diff)
downloadlinux-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.c4
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';