From: Jianglei Nie <[email protected]>

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.

Signed-off-by: Jianglei Nie <[email protected]>
Acked-by: Baoquan He <[email protected]>
Signed-off-by: Baoquan He <[email protected]>
---
 fs/proc/vmcore.c | 1 +
 1 file changed, 1 insertion(+)

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;
        }
-- 
2.34.1


_______________________________________________
kexec mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/kexec

Reply via email to