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
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.