This is the mail archive of the
elfutils-devel@sourceware.org
mailing list for the elfutils project.
[PATCH] readelf: Check there is enough room for the DW_LNE_set_address argument
- From: Mark Wielaard <mjw at redhat dot com>
- To: elfutils-devel at lists dot fedorahosted dot org
- Date: Mon, 15 Dec 2014 11:36:34 +0100
- Subject: [PATCH] readelf: Check there is enough room for the DW_LNE_set_address argument
Signed-off-by: Mark Wielaard <mjw@redhat.com>
---
src/ChangeLog | 5 +++++
src/readelf.c | 2 ++
2 files changed, 7 insertions(+)
diff --git a/src/ChangeLog b/src/ChangeLog
index a4f42e4..7247ea9 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
+2014-12-15 Mark Wielaard <mjw@redhat.com>
+
+ * readelf.c (print_debug_line_section): Check there is enough room
+ for DW_LNE_set_address argument.
+
2014-12-14 Mark Wielaard <mjw@redhat.com>
* elflint.c (check_attributes): Call get_uleb128 with end pointer.
diff --git a/src/readelf.c b/src/readelf.c
index 51ce020..faaa6d1 100644
--- a/src/readelf.c
+++ b/src/readelf.c
@@ -6609,6 +6609,8 @@ print_debug_line_section (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr,
case DW_LNE_set_address:
op_index = 0;
+ if (unlikely ((size_t) (lineendp - linep) < address_size))
+ goto invalid_unit;
if (address_size == 4)
address = read_4ubyte_unaligned_inc (dbg, linep);
else
--
1.8.3.1