34 lines
904 B
Diff
34 lines
904 B
Diff
diff --git a/src/elfclass.h b/src/elfclass.h
|
|
index 27817d0..7f3da86 100644
|
|
--- a/src/elfclass.h
|
|
+++ b/src/elfclass.h
|
|
@@ -35,6 +35,7 @@
|
|
switch (type) {
|
|
#ifdef ELFCORE
|
|
case ET_CORE:
|
|
+ flags |= FLAGS_IS_CORE;
|
|
if (dophn_core(ms, clazz, swap, fd,
|
|
(off_t)elf_getu(swap, elfhdr.e_phoff),
|
|
elf_getu16(swap, elfhdr.e_phnum),
|
|
diff --git a/src/readelf.c b/src/readelf.c
|
|
index 5915569..24aa28c 100644
|
|
--- a/src/readelf.c
|
|
+++ b/src/readelf.c
|
|
@@ -286,6 +286,7 @@ private const char os_style_names[][8] = {
|
|
#define FLAGS_DID_CORE 1
|
|
#define FLAGS_DID_NOTE 2
|
|
#define FLAGS_DID_CORE_STYLE 4
|
|
+#define FLAGS_IS_CORE 8
|
|
|
|
private int
|
|
dophn_core(struct magic_set *ms, int clazz, int swap, int fd, off_t off,
|
|
@@ -676,7 +677,7 @@ core:
|
|
break;
|
|
|
|
default:
|
|
- if (xnh_type == NT_PRPSINFO) {
|
|
+ if (xnh_type == NT_PRPSINFO && *flags & FLAGS_IS_CORE) {
|
|
size_t i, j;
|
|
unsigned char c;
|
|
/*
|