Re: [PATCH] mm: debug_page_alloc: fix NULL buf in debug_guardpage_minorder_setup
Ye Liu <[email protected]>
| Newsgroups | gmane.linux.kernel,gmane.linux.kernel.mm |
|---|---|
| Message-ID | <[email protected]> |
在 2026/8/6 09:08, John Hubbard 写道: > On 8/5/26 5:45 PM, Ye Liu wrote: >> From: Ye Liu <[email protected]> >> >> If the kernel command line includes "debug_guardpage_minorder" without >> an equals sign (i.e., no value is provided), the early parameter >> parser passes a NULL buf pointer to the setup function. >> >> kstrtouint() does not perform a NULL check on its input and calls >> directly into kstrtoull() which dereferences s[0] unconditionally, >> leading to a NULL pointer dereference and early boot crash. >> >> Additionally, the error path's pr_err("%s", buf) would also crash with >> a NULL format argument. >> > > Maybe a "Fixes:" tag is called for? > Add the following Fixes. Thanks. Fixes: c0a32fc5a2e4 ("mm: more intensive memory corruption debugging") > >> Signed-off-by: Ye Liu <[email protected]> >> --- >> mm/debug_page_alloc.c | 4 ++-- >> 1 file changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/mm/debug_page_alloc.c b/mm/debug_page_alloc.c >> index 41e3d1f1ad96..fd2664c3c86a 100644 >> --- a/mm/debug_page_alloc.c >> +++ b/mm/debug_page_alloc.c >> @@ -22,8 +22,8 @@ static int __init debug_guardpage_minorder_setup(char *buf) >> { >> unsigned int res; >> >> - if (kstrtouint(buf, 10, &res) < 0 || res > MAX_PAGE_ORDER / 2) { >> - pr_err("Bad debug_guardpage_minorder value: %s\n", buf); >> + if (!buf || kstrtouint(buf, 10, &res) < 0 || res > MAX_PAGE_ORDER / 2) { >> + pr_err("Bad debug_guardpage_minorder value: %s\n", buf ?: "(missing)"); >> return 0; >> } >> _debug_guardpage_minorder = res; > > thanks, -- Thanks, Ye Liu