summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMark Wielaard <[email protected]>2017-12-18 12:39:13 +0100
committerMark Wielaard <[email protected]>2017-12-18 12:39:16 +0100
commit8887f30e55747b010631f04c4dc5f513359213f4 (patch)
tree6de2e26c52955171134a8a879042b6da03fed9e5 /src
parentc25dc62e59dc42378370602b0d05415a42b051d6 (diff)
readelf: Try to continue after encountering bogus ELF Note data.
There might be other sections or segments with ELF Notes that are readable. Also adjust error message depending on whether or not we actually got any data for the ELF Note segment or section. Signed-off-by: Mark Wielaard <[email protected]>
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog5
-rw-r--r--src/readelf.c6
2 files changed, 8 insertions, 3 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 8935022b..994b1e17 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
+2017-12-18 Mark Wielaard <[email protected]>
+
+ * readelf.c (handle_notes_data): Don't use EXIT_FAILURE in error.
+ Adjust error message depending on whether or not we got data.
+
2017-12-07 Mark Wielaard <[email protected]>
* readelf.c (print_ops): Update data pointer and print arguments
diff --git a/src/readelf.c b/src/readelf.c
index ed21ef7a..ca979e3c 100644
--- a/src/readelf.c
+++ b/src/readelf.c
@@ -9611,9 +9611,9 @@ handle_notes_data (Ebl *ebl, const GElf_Ehdr *ehdr,
return;
bad_note:
- error (EXIT_FAILURE, 0,
- gettext ("cannot get content of note section: %s"),
- elf_errmsg (-1));
+ error (0, 0,
+ gettext ("cannot get content of note: %s"),
+ data != NULL ? "garbage data" : elf_errmsg (-1));
}
static void