diff options
author | Rik van Riel <riel@redhat.com> | 2010-04-05 12:13:33 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-04-05 12:15:51 -0400 |
commit | 4946d54cb55e86a156216fcfeed5568514b0830f (patch) | |
tree | a27a670f2cbe7d689588af24c6c9cda82690c7c2 | |
parent | db217dece3003df0841bacf9556b5c06aa097dae (diff) |
rmap: fix anon_vma_fork() memory leak
Fix a memory leak in anon_vma_fork(), where we fail to tear down the
anon_vmas attached to the new VMA in case setting up the new anon_vma
fails.
This bug also has the potential to leave behind anon_vma_chain structs
with pointers to invalid memory.
Reported-by: Minchan Kim <minchan.kim@gmail.com>
Signed-off-by: Rik van Riel <riel@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r-- | mm/rmap.c | 1 |
1 files changed, 1 insertions, 0 deletions
@@ -232,6 +232,7 @@ int anon_vma_fork(struct vm_area_struct *vma, struct vm_area_struct *pvma) | |||
232 | out_error_free_anon_vma: | 232 | out_error_free_anon_vma: |
233 | anon_vma_free(anon_vma); | 233 | anon_vma_free(anon_vma); |
234 | out_error: | 234 | out_error: |
235 | unlink_anon_vmas(vma); | ||
235 | return -ENOMEM; | 236 | return -ENOMEM; |
236 | } | 237 | } |
237 | 238 | ||