All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lance Yang <lance.yang@linux.dev>
To: David Hildenbrand <david@redhat.com>
Cc: 21cnbao@gmail.com, Liam.Howlett@oracle.com, vbabka@suse.cz,
	jannh@google.com, lorenzo.stoakes@oracle.com,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	akpm@linux-foundation.org, Lance Yang <ioworker0@gmail.com>
Subject: Re: [PATCH 1/1] mm/madvise: initialize prev pointer in madvise_walk_vmas
Date: Tue, 17 Jun 2025 16:18:24 +0800	[thread overview]
Message-ID: <a6c69b04-6857-4021-8b7c-85398778deab@linux.dev> (raw)
In-Reply-To: <ab78f4ee-dfa4-4c49-8944-a67546a739ca@redhat.com>



On 2025/6/17 15:54, David Hildenbrand wrote:
> On 17.06.25 04:05, Lance Yang wrote:
>> From: Lance Yang <lance.yang@linux.dev>
>>
>> The prev pointer was uninitialized, which could lead to undefined 
>> behavior
>> where its address is taken and passed to the visit() callback without 
>> being
>> assigned a value.
> 
> So, we are passing the pointer value to visit(), which is not undefined 
> behavior.
> 
> The issue would be if anybody takes a look at the value stored at that 
> pointer. Because, already passing an uninitialized value to a (non- 
> inlined) function is undefined behavior according to C.

Yes, that is precisely is what I am concerned about ;)

> 
> In madvise_update_vma()->vma_modify_flags_name() we do exactly that, 
> correct?
> 
>      vma = vma_modify_flags_name(&vmi, *prev, ...
> 
> We should use Fixes: then.

Exactly, I missed that. Will add the "Fixes" tag and send out a new version.

> 
> 
> Acked-by: David Hildenbrand <david@redhat.com>

Thanks!
Lance

> 
>>
>> Initializing it to NULL makes the code safer and prevents potential bugs
>> if a future callback function attempts to read from it.
>>
>> Signed-off-by: Lance Yang <lance.yang@linux.dev>
>> ---
>>   mm/madvise.c | 4 ++--
>>   1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/mm/madvise.c b/mm/madvise.c
>> index 267d8e4adf31..c87325000303 100644
>> --- a/mm/madvise.c
>> +++ b/mm/madvise.c
>> @@ -1536,10 +1536,10 @@ int madvise_walk_vmas(struct mm_struct *mm, 
>> unsigned long start,
>>                      struct vm_area_struct **prev, unsigned long start,
>>                      unsigned long end, void *arg))
>>   {
>> +    struct vm_area_struct *prev = NULL;
>>       struct vm_area_struct *vma;
>> -    struct vm_area_struct *prev;
>> -    unsigned long tmp;
>>       int unmapped_error = 0;
>> +    unsigned long tmp;
>>       int error;
>>       /*
> 
> 



  reply	other threads:[~2025-06-17  8:18 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-06-17  2:05 [PATCH 1/1] mm/madvise: initialize prev pointer in madvise_walk_vmas Lance Yang
2025-06-17  2:24 ` Barry Song
2025-06-17  4:57   ` Lance Yang
2025-06-17  5:19     ` Barry Song
2025-06-17  6:03       ` Lance Yang
2025-06-17  7:54 ` David Hildenbrand
2025-06-17  8:18   ` Lance Yang [this message]
2025-06-17  8:21   ` Lorenzo Stoakes
2025-06-17  8:28     ` David Hildenbrand
2025-06-17  8:34       ` Lorenzo Stoakes
2025-06-17  8:38         ` David Hildenbrand
2025-06-17  8:50           ` Lorenzo Stoakes
2025-06-17  8:53             ` David Hildenbrand
2025-06-17  8:43   ` Lorenzo Stoakes
2025-06-17  8:51     ` Lorenzo Stoakes
2025-06-17  8:26 ` Lorenzo Stoakes
2025-06-17  8:50 ` Lorenzo Stoakes
2025-06-17  9:21   ` Lance Yang
2025-06-17  9:26     ` Lorenzo Stoakes

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=a6c69b04-6857-4021-8b7c-85398778deab@linux.dev \
    --to=lance.yang@linux.dev \
    --cc=21cnbao@gmail.com \
    --cc=Liam.Howlett@oracle.com \
    --cc=akpm@linux-foundation.org \
    --cc=david@redhat.com \
    --cc=ioworker0@gmail.com \
    --cc=jannh@google.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=lorenzo.stoakes@oracle.com \
    --cc=vbabka@suse.cz \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.