From: Kaitao Cheng Date: Tue, 19 May 2026 13:01:17 +0000 (+0800) Subject: lib/vsprintf: Require exact hash_pointers mode matches X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b09b6d0c404d62480dbc23865c763c63598511f5;p=thirdparty%2Flinux.git lib/vsprintf: Require exact hash_pointers mode matches 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 Reviewed-by: Petr Mladek Link: https://patch.msgid.link/20260519130117.48097-1-kaitao.cheng@linux.dev Signed-off-by: Petr Mladek --- diff --git a/lib/vsprintf.c b/lib/vsprintf.c index d700dd0a52610..90b267b59254a 100644 --- a/lib/vsprintf.c +++ b/lib/vsprintf.c @@ -2362,13 +2362,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 {