aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJianglei Nie <[email protected]>2022-09-29 12:29:33 +0800
committerAndrew Morton <[email protected]>2022-11-18 13:55:06 -0800
commit12b9d301ff73122aebd78548fa4c04ca69ed78fe (patch)
tree4220e055e8607de89606ae3210b88e569f3d3e77
parentb270f492dc45b59d573cd80795e8b4781e959836 (diff)
proc/vmcore: fix potential memory leak in vmcore_init()
Patch series "Some minor cleanup patches resent". The first three patches trivial clean up patches. And for the patch "kexec: replace crash_mem_range with range", I got a ibm-p9wr ppc64le system to test, it works well. This patch (of 4): elfcorehdr_alloc() allocates a memory chunk for elfcorehdr_addr with kzalloc(). If is_vmcore_usable() returns false, elfcorehdr_addr is a predefined value. If parse_crash_elf_headers() gets some error and returns a negetive value, the elfcorehdr_addr should be released with elfcorehdr_free(). Fix it by calling elfcorehdr_free() when parse_crash_elf_headers() fails. Link: https://lkml.kernel.org/r/[email protected] Link: https://lkml.kernel.org/r/[email protected] Signed-off-by: Jianglei Nie <[email protected]> Signed-off-by: Baoquan He <[email protected]> Acked-by: Baoquan He <[email protected]> Cc: Benjamin Herrenschmidt <[email protected]> Cc: Chen Lifu <[email protected]> Cc: "Eric W . Biederman" <[email protected]> Cc: Li Chen <[email protected]> Cc: Michael Ellerman <[email protected]> Cc: Paul Mackerras <[email protected]> Cc: Petr Mladek <[email protected]> Cc: Russell King <[email protected]> Cc: ye xingchen <[email protected]> Cc: Zeal Robot <[email protected]> Signed-off-by: Andrew Morton <[email protected]>
-rw-r--r--fs/proc/vmcore.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/proc/vmcore.c b/fs/proc/vmcore.c
index f2aa86c421f2..74747571d58e 100644
--- a/fs/proc/vmcore.c
+++ b/fs/proc/vmcore.c
@@ -1567,6 +1567,7 @@ static int __init vmcore_init(void)
return rc;
rc = parse_crash_elf_headers();
if (rc) {
+ elfcorehdr_free(elfcorehdr_addr);
pr_warn("Kdump: vmcore not initialized\n");
return rc;
}