[PATCH 3/3] lib/vsprintf: Require exact hash_pointers mode matches
From: Kaitao Cheng
Date: Tue May 19 2026 - 08:44:17 EST
From: Kaitao Cheng <chengkaitao@xxxxxxxxxx>
hash_pointers= accepts a small set of mode strings, but the parser uses
strncmp() with the length of each valid mode. That accepts values with
trailing garbage, such as hash_pointers=autobots or
hash_pointers=nevermind, as valid aliases for auto and never.
Use strcmp() so that only the documented mode strings are accepted.
Invalid values will continue to fall back to auto through the existing
unknown-mode path.
Signed-off-by: Kaitao Cheng <chengkaitao@xxxxxxxxxx>
---
lib/vsprintf.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/lib/vsprintf.c b/lib/vsprintf.c
index 6b1213d070b4..f08ca856b03f 100644
--- a/lib/vsprintf.c
+++ b/lib/vsprintf.c
@@ -2361,13 +2361,13 @@ static int __init hash_pointers_mode_parse(char *str)
if (!str) {
pr_warn("Hash pointers mode empty; falling back to auto.\n");
hash_pointers_mode = HASH_PTR_AUTO;
- } else if (strncmp(str, "auto", 4) == 0) {
+ } else if (strcmp(str, "auto") == 0) {
pr_info("Hash pointers mode set to auto.\n");
hash_pointers_mode = HASH_PTR_AUTO;
- } else if (strncmp(str, "never", 5) == 0) {
+ } else if (strcmp(str, "never") == 0) {
pr_info("Hash pointers mode set to never.\n");
hash_pointers_mode = HASH_PTR_NEVER;
- } else if (strncmp(str, "always", 6) == 0) {
+ } else if (strcmp(str, "always") == 0) {
pr_info("Hash pointers mode set to always.\n");
hash_pointers_mode = HASH_PTR_ALWAYS;
} else {
--
2.50.1 (Apple Git-155)