[makedumpfile PATCH] check for invalid physical address of /proc/kcore when make ELF format dumpfile
Tao Liu
ltao at redhat.com
Fri Jun 18 03:28:04 PDT 2021
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 at redhat.com>
---
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
More information about the kexec
mailing list