Signed-off-by: Mark Wielaard <mjw(a)redhat.com>
---
src/ChangeLog | 5 +++++
src/readelf.c | 2 +-
2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/src/ChangeLog b/src/ChangeLog
index aa16b67..19509dc 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
+2014-11-23 Mark Wielaard <mjw(a)redhat.com>
+
+ * readelf.c (print_debug_aranges_section): Check length to catch
+ nexthdr overflow.
+
2014-11-21 Mark Wielaard <mjw(a)redhat.com>
* readelf.c (print_attributes): Guard against empty section.
diff --git a/src/readelf.c b/src/readelf.c
index 9bae66d..ffc14fd 100644
--- a/src/readelf.c
+++ b/src/readelf.c
@@ -4693,7 +4693,7 @@ print_debug_aranges_section (Dwfl_Module *dwflmod __attribute__
((unused)),
printf (gettext ("\n Length: %6" PRIu64 "\n"),
(uint64_t) length);
- if (nexthdr > readendp)
+ if (length > readendp - readp)
goto invalid_data;
if (length == 0)
--
1.9.3
Show replies by thread