[makedumpfile PATCH] check for invalid physical address of /proc/kcore when make ELF format dumpfile

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Previously when executing makedumpfile with -E option against /proc/kcore,
makedumpfile will fail:

    $ sudo makedumpfile -E -d 31 /proc/kcore vmcore
    ...
    write_elf_load_segment: Can't convert physaddr(ffffffffffffffff) to an
    offset.

    makedumpfile Failed.

It's because /proc/kcore contains PT_LOAD program headers which have
physaddr(ffffffffffffffff). With -E option, makedumpfile will try to convert
the physaddr to an offset and fails.

In this patch, let's skip the PT_LOAD program headers which have such physaddr.

Signed-off-by: Tao Liu <ltao@xxxxxxxxxx>
---
 makedumpfile.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/makedumpfile.c b/makedumpfile.c
index 894c88e..8c93c54 100644
--- a/makedumpfile.c
+++ b/makedumpfile.c
@@ -7767,6 +7767,9 @@ write_elf_pages_cyclic(struct cache_data *cd_header, struct cache_data *cd_page)
 		if (load.p_type != PT_LOAD)
 			continue;
 
+		if (load.p_paddr == -1)
+			continue;
+
 		off_memory= load.p_offset;
 		paddr = load.p_paddr;
 		pfn_start = paddr_to_pfn(load.p_paddr);
-- 
2.29.2


_______________________________________________
kexec mailing list
kexec@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/kexec



[Index of Archives]     [LM Sensors]     [Linux Sound]     [ALSA Users]     [ALSA Devel]     [Linux Audio Users]     [Linux Media]     [Kernel]     [Gimp]     [Yosemite News]     [Linux Media]

  Powered by Linux