| From 6fcac87e1f9e5b27805a2a404f4849194bb51de8 Mon Sep 17 00:00:00 2001 |
| From: QiuXi <qiuxi1@huawei.com> |
| Date: Tue, 7 Sep 2021 20:00:32 -0700 |
| Subject: coredump: fix memleak in dump_vma_snapshot() |
| |
| From: QiuXi <qiuxi1@huawei.com> |
| |
| commit 6fcac87e1f9e5b27805a2a404f4849194bb51de8 upstream. |
| |
| dump_vma_snapshot() allocs memory for *vma_meta, when dump_vma_snapshot() |
| returns -EFAULT, the memory will be leaked, so we free it correctly. |
| |
| Link: https://lkml.kernel.org/r/20210810020441.62806-1-qiuxi1@huawei.com |
| Fixes: a07279c9a8cd7 ("binfmt_elf, binfmt_elf_fdpic: use a VMA list snapshot") |
| Signed-off-by: QiuXi <qiuxi1@huawei.com> |
| Cc: Al Viro <viro@zeniv.linux.org.uk> |
| Cc: Jann Horn <jannh@google.com> |
| Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| fs/coredump.c | 4 +++- |
| 1 file changed, 3 insertions(+), 1 deletion(-) |
| |
| --- a/fs/coredump.c |
| +++ b/fs/coredump.c |
| @@ -1127,8 +1127,10 @@ int dump_vma_snapshot(struct coredump_pa |
| |
| mmap_write_unlock(mm); |
| |
| - if (WARN_ON(i != *vma_count)) |
| + if (WARN_ON(i != *vma_count)) { |
| + kvfree(*vma_meta); |
| return -EFAULT; |
| + } |
| |
| *vma_data_size_ptr = vma_data_size; |
| return 0; |