Signed-off-by: Mark Wielaard <m...@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  <m...@redhat.com>
+
+       * readelf.c (print_debug_aranges_section): Check length to catch
+       nexthdr overflow.
+
 2014-11-21  Mark Wielaard  <m...@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

Reply via email to