Re: [PATCH] mm: debug_page_alloc: fix NULL buf in debug_guardpage_minorder_setup
John Hubbard <[email protected]>
| Newsgroups | gmane.linux.kernel,gmane.linux.kernel.mm |
|---|---|
| Message-ID | <[email protected]> |
On 8/5/26 6:56 PM, Ye Liu wrote: > > > 在 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") > Looks good, Reviewed-by: John Hubbard <[email protected]> thanks, -- John Hubbard >> >>> 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, >