summaryrefslogtreecommitdiffstats
path: root/libdw/dwarf_formblock.c
diff options
context:
space:
mode:
Diffstat (limited to 'libdw/dwarf_formblock.c')
-rw-r--r--libdw/dwarf_formblock.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/libdw/dwarf_formblock.c b/libdw/dwarf_formblock.c
index 6d7b9d39..4eb815c4 100644
--- a/libdw/dwarf_formblock.c
+++ b/libdw/dwarf_formblock.c
@@ -95,9 +95,10 @@ dwarf_formblock (attr, return_block)
return -1;
}
- if (return_block->data + return_block->length
- > ((unsigned char *) attr->cu->dbg->sectiondata[IDX_debug_info]->d_buf
- + attr->cu->dbg->sectiondata[IDX_debug_info]->d_size))
+ if (unlikely (cu_data (attr->cu)->d_size
+ - (return_block->data
+ - (unsigned char *) cu_data (attr->cu)->d_buf)
+ < return_block->length))
{
/* Block does not fit. */
__libdw_seterrno (DWARF_E_INVALID_DWARF);