浏览代码

[PATCH] Ignore trailing whitespace on kernel parameters correctly

Dave Jones says:

... if the modprobe.conf has trailing whitespace, modules fail to load
with the following helpful message..

	snd_intel8x0: Unknown parameter `'

Previous version truncated last argument.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Cc: Dave Jones <davej@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Rusty Russell 19 年之前
父节点
当前提交
f36462f078
共有 1 个文件被更改,包括 8 次插入2 次删除
  1. 8 2
      kernel/params.c

+ 8 - 2
kernel/params.c

@@ -80,8 +80,6 @@ static char *next_arg(char *args, char **param, char **val)
 	int in_quote = 0, quoted = 0;
 	int in_quote = 0, quoted = 0;
 	char *next;
 	char *next;
 
 
-	/* Chew any extra spaces */
-	while (*args == ' ') args++;
 	if (*args == '"') {
 	if (*args == '"') {
 		args++;
 		args++;
 		in_quote = 1;
 		in_quote = 1;
@@ -121,6 +119,10 @@ static char *next_arg(char *args, char **param, char **val)
 		next = args + i + 1;
 		next = args + i + 1;
 	} else
 	} else
 		next = args + i;
 		next = args + i;
+
+	/* Chew up trailing spaces. */
+	while (*next == ' ')
+		next++;
 	return next;
 	return next;
 }
 }
 
 
@@ -135,6 +137,10 @@ int parse_args(const char *name,
 
 
 	DEBUGP("Parsing ARGS: %s\n", args);
 	DEBUGP("Parsing ARGS: %s\n", args);
 
 
+	/* Chew leading spaces */
+	while (*args == ' ')
+		args++;
+
 	while (*args) {
 	while (*args) {
 		int ret;
 		int ret;