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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.