linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 1/1] mm: fix vma->anon_name memory leak for anonymous shmem VMAs
@ 2023-01-05  0:02 Suren Baghdasaryan
  2023-01-05  1:38 ` Andrew Morton
  2023-01-05  9:04 ` David Hildenbrand
  0 siblings, 2 replies; 6+ messages in thread
From: Suren Baghdasaryan @ 2023-01-05  0:02 UTC (permalink / raw)
  To: akpm
  Cc: hughd, hannes, david, vincent.whitchurch, seanjc, rppt,
	shy828301, pasha.tatashin, paul.gortmaker, peterx, vbabka,
	Liam.Howlett, ccross, willy, arnd, cgel.zte, yuzhao, bagasdotme,
	suleiman, steven, heftig, cuigaosheng1, kirill, linux-kernel,
	linux-fsdevel, linux-mm, surenb, syzbot+91edf9178386a07d06a7

free_anon_vma_name() is missing a check for anonymous shmem VMA which
leads to a memory leak due to refcount not being dropped.  Fix this by
calling anon_vma_name_put() unconditionally. It will free vma->anon_name
whenever it's non-NULL.

Fixes: d09e8ca6cb93 ("mm: anonymous shared memory naming")
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
Suggested-by: David Hildenbrand <david@redhat.com>
Reported-by: syzbot+91edf9178386a07d06a7@syzkaller.appspotmail.com
Cc: David Hildenbrand <david@redhat.com>
Cc: Hugh Dickins <hughd@google.com>
Cc: Pasha Tatashin <pasha.tatashin@soleen.com>
---
applies over mm-hotfixes-unstable branch of
git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm tree after reverting
the original version of this patch.

 include/linux/mm_inline.h | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/include/linux/mm_inline.h b/include/linux/mm_inline.h
index e8ed225d8f7c..ff3f3f23f649 100644
--- a/include/linux/mm_inline.h
+++ b/include/linux/mm_inline.h
@@ -413,8 +413,7 @@ static inline void free_anon_vma_name(struct vm_area_struct *vma)
 	 * Not using anon_vma_name because it generates a warning if mmap_lock
 	 * is not held, which might be the case here.
 	 */
-	if (!vma->vm_file)
-		anon_vma_name_put(vma->anon_name);
+	anon_vma_name_put(vma->anon_name);
 }
 
 static inline bool anon_vma_name_eq(struct anon_vma_name *anon_name1,
-- 
2.39.0.314.g84b9a713c41-goog



^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2023-01-05 12:18 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-01-05  0:02 [PATCH v2 1/1] mm: fix vma->anon_name memory leak for anonymous shmem VMAs Suren Baghdasaryan
2023-01-05  1:38 ` Andrew Morton
2023-01-05  2:39   ` Suren Baghdasaryan
2023-01-05  9:03     ` David Hildenbrand
     [not found]       ` <22aab888-75c1-ffad-d72b-f87c9d9d80c8@applied-asynchrony.com>
2023-01-05 12:18         ` David Hildenbrand
2023-01-05  9:04 ` David Hildenbrand

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox