Skip to contentSkip to conversation

x86/spectre: fix an error message

PATCH In review Dan Carpenter 3 participants 4 messages Feb 14, 2018 – Feb 15, 2018

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 x86/spectre: fix an error message

If i = ARRAY_SIZE(mitigation_options) then we accidentally print garbage from one space beyond the end of the mitigation_options[] array.

Fixes 9005c6834c0f ("x86/spectre: Simplify spectre_v2 command line parsing")
arch/x86/kernel/cpu/bugs.c +1 -1
index debcdda88560..acee4ebec04f 100644
@@ -174,7 +174,7 @@ static enum spectre_v2_mitigation_cmd __init spectre_v2_parse_cmdline(void)
 		}
 
 		if (i >= ARRAY_SIZE(mitigation_options)) {
-			pr_err("unknown option (%s). Switching to AUTO select\n", mitigation_options[i].option);
+			pr_err("unknown option (%s). Switching to AUTO select\n", arg);
 			return SPECTRE_V2_CMD_AUTO;
 		}
 	}
#1 lore raw
Quoted 11 lines · Dan Carpenter

If i = ARRAY_SIZE(mitigation_options) then we accidentally print garbage from one space beyond the end of the mitigation_options[] array.

Fixes 9005c6834c0f ("x86/spectre: Simplify spectre_v2 command line parsing")
arch/x86/kernel/cpu/bugs.c +0 -0
index debcdda88560..acee4ebec04f 100644

arch/x86/kernel/cpu/bugs.c static enum spectre_v2_mitigation_cmd __init spectre_v2_parse_cmdline(void) · line 180

Quoted 8 lines
arch/x86/kernel/cpu/bugs.c +1 -1
@@ -174,7 +174,7 @@ static enum spectre_v2_mitigation_cmd __init spectre_v2_parse_cmdline(void)
 		}
 
 		if (i >= ARRAY_SIZE(mitigation_options)) {
-			pr_err("unknown option (%s). Switching to AUTO select\n", mitigation_options[i].option);
+			pr_err("unknown option (%s). Switching to AUTO select\n", arg);
 			return SPECTRE_V2_CMD_AUTO;
 		}
 	}

Should probably unindent this block too by
removing the else after the return

---
 arch/x86/kernel/cpu/bugs.c | 29 ++++++++++++++---------------
 1 file changed, 14 insertions(+), 15 deletions(-)
arch/x86/kernel/cpu/bugs.c +14 -15
index 4acf16a76d1e..0af8245afb6c 100644
@@ -161,22 +161,21 @@ static enum spectre_v2_mitigation_cmd __init spectre_v2_parse_cmdline(void)
 
 	if (cmdline_find_option_bool(boot_command_line, "nospectre_v2"))
 		return SPECTRE_V2_CMD_NONE;
-	else {
-		ret = cmdline_find_option(boot_command_line, "spectre_v2", arg, sizeof(arg));
-		if (ret < 0)
-			return SPECTRE_V2_CMD_AUTO;
-
-		for (i = 0; i < ARRAY_SIZE(mitigation_options); i++) {
-			if (!match_option(arg, ret, mitigation_options[i].option))
-				continue;
-			cmd = mitigation_options[i].cmd;
-			break;
-		}
 
-		if (i >= ARRAY_SIZE(mitigation_options)) {
-			pr_err("unknown option (%s). Switching to AUTO select\n", mitigation_options[i].option);
-			return SPECTRE_V2_CMD_AUTO;
-		}
+	ret = cmdline_find_option(boot_command_line, "spectre_v2", arg, sizeof(arg));
+	if (ret < 0)
+		return SPECTRE_V2_CMD_AUTO;
+
+	for (i = 0; i < ARRAY_SIZE(mitigation_options); i++) {
+		if (!match_option(arg, ret, mitigation_options[i].option))
+			continue;
+		cmd = mitigation_options[i].cmd;
+		break;
+	}
+
+	if (i >= ARRAY_SIZE(mitigation_options)) {
+		pr_err("unknown option (%s). Switching to AUTO select\n", arg);
+		return SPECTRE_V2_CMD_AUTO;
 	}
 
 	if ((cmd = SPECTRE_V2_CMD_RETPOLINE ||
#2 lore raw

[tip:x86/pti] x86/spectre: Fix an error message

In reply to Dan Carpenter
x86/spectre: Fix an error message
Commit-ID:  b4764623932ff364df9a6bc8664ab7697c475339
Gitweb:     https://git.kernel.org/tip/b4764623932ff364df9a6bc8664ab7697c475339
Author:     Dan Carpenter <[email protected]>
AuthorDate: Wed, 14 Feb 2018 10:14:17 +0300
Committer:  Ingo Molnar <[email protected]>
CommitDate: Wed, 14 Feb 2018 08:23:07 +0100

x86/spectre: Fix an error message

If i == ARRAY_SIZE(mitigation_options) then we accidentally print garbage from one space beyond the end of the mitigation_options[] array.

Cc Andy Lutomirski <[email protected]>
Cc Borislav Petkov <[email protected]>
Cc David Woodhouse <[email protected]>
Cc Greg Kroah-Hartman <[email protected]>
Cc KarimAllah Ahmed <[email protected]>
Cc Linus Torvalds <[email protected]>
Cc Peter Zijlstra <[email protected]>
Cc Thomas Gleixner <[email protected]>
Fixes 9005c6834c0f ("x86/spectre: Simplify spectre_v2 command line parsing")
---
 arch/x86/kernel/cpu/bugs.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
arch/x86/kernel/cpu/bugs.c +1 -1
index 4acf16a..d71c8b5 100644
@@ -174,7 +174,7 @@ static enum spectre_v2_mitigation_cmd __init spectre_v2_parse_cmdline(void)
 		}
 
 		if (i >= ARRAY_SIZE(mitigation_options)) {
-			pr_err("unknown option (%s). Switching to AUTO select\n", mitigation_options[i].option);
+			pr_err("unknown option (%s). Switching to AUTO select\n", arg);
 			return SPECTRE_V2_CMD_AUTO;
 		}
 	}
#3 lore raw

[tip:x86/pti] x86/spectre: Fix an error message

In reply to Dan Carpenter
x86/spectre: Fix an error message
Commit-ID:  9de29eac8d2189424d81c0d840cd0469aa3d41c8
Gitweb:     https://git.kernel.org/tip/9de29eac8d2189424d81c0d840cd0469aa3d41c8
Author:     Dan Carpenter <[email protected]>
AuthorDate: Wed, 14 Feb 2018 10:14:17 +0300
Committer:  Ingo Molnar <[email protected]>
CommitDate: Thu, 15 Feb 2018 01:15:53 +0100

x86/spectre: Fix an error message

If i == ARRAY_SIZE(mitigation_options) then we accidentally print garbage from one space beyond the end of the mitigation_options[] array.

Cc Andy Lutomirski <[email protected]>
Cc Borislav Petkov <[email protected]>
Cc David Woodhouse <[email protected]>
Cc Greg Kroah-Hartman <[email protected]>
Cc KarimAllah Ahmed <[email protected]>
Cc Linus Torvalds <[email protected]>
Cc Peter Zijlstra <[email protected]>
Cc Thomas Gleixner <[email protected]>
Fixes 9005c6834c0f ("x86/spectre: Simplify spectre_v2 command line parsing")
---
 arch/x86/kernel/cpu/bugs.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
arch/x86/kernel/cpu/bugs.c +1 -1
index 4acf16a..d71c8b5 100644
@@ -174,7 +174,7 @@ static enum spectre_v2_mitigation_cmd __init spectre_v2_parse_cmdline(void)
 		}
 
 		if (i >= ARRAY_SIZE(mitigation_options)) {
-			pr_err("unknown option (%s). Switching to AUTO select\n", mitigation_options[i].option);
+			pr_err("unknown option (%s). Switching to AUTO select\n", arg);
 			return SPECTRE_V2_CMD_AUTO;
 		}
 	}