diff options
Diffstat (limited to 'libdw/dwarf_child.c')
-rw-r--r-- | libdw/dwarf_child.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/libdw/dwarf_child.c b/libdw/dwarf_child.c index c8c8bb61..96a0d608 100644 --- a/libdw/dwarf_child.c +++ b/libdw/dwarf_child.c @@ -73,10 +73,13 @@ __libdw_find_attr (Dwarf_Die *die, unsigned int search_name, if (attr_form == DW_FORM_indirect) { + if (readp >= endp) + goto invalid; get_uleb128 (attr_form, readp, endp); if (attr_form == DW_FORM_indirect || attr_form == DW_FORM_implicit_const) { + invalid: __libdw_seterrno (DWARF_E_INVALID_DWARF); return NULL; } |