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 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? > 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, -- John Hubbard