aboutsummaryrefslogtreecommitdiff
path: root/libdwarf
diff options
context:
space:
mode:
authorEd Maste <emaste@FreeBSD.org>2014-12-30 01:27:18 +0000
committerEd Maste <emaste@FreeBSD.org>2014-12-30 01:27:18 +0000
commit42bfa111d731278ff40f9ce45298e65a373c2064 (patch)
tree93decb044b3639075e37c0f46bef0c1b6a0529f8 /libdwarf
parent5eccfb5cf5403e9e564066e0a75d80534b49e91d (diff)
downloadsrc-vendor/elftoolchain/elftoolchain-r3136.tar.gz
src-vendor/elftoolchain/elftoolchain-r3136.zip
Import elftoolchain rev 3136vendor/elftoolchain/elftoolchain-r3136
From svn.code.sf.net/p/elftoolchain/code/trunk
Diffstat (limited to 'libdwarf')
-rw-r--r--libdwarf/libdwarf_abbrev.c6
-rw-r--r--libdwarf/libdwarf_info.c5
-rw-r--r--libdwarf/libdwarf_init.c9
3 files changed, 9 insertions, 11 deletions
diff --git a/libdwarf/libdwarf_abbrev.c b/libdwarf/libdwarf_abbrev.c
index f4a395df0360..abcc2fda9580 100644
--- a/libdwarf/libdwarf_abbrev.c
+++ b/libdwarf/libdwarf_abbrev.c
@@ -27,7 +27,7 @@
#include "_libdwarf.h"
-ELFTC_VCSID("$Id: libdwarf_abbrev.c 2070 2011-10-27 03:05:32Z jkoshy $");
+ELFTC_VCSID("$Id: libdwarf_abbrev.c 3136 2014-12-24 16:04:38Z kaiwang27 $");
int
_dwarf_abbrev_add(Dwarf_CU cu, uint64_t entry, uint64_t tag, uint8_t children,
@@ -180,7 +180,9 @@ _dwarf_abbrev_find(Dwarf_CU cu, uint64_t entry, Dwarf_Abbrev *abp,
/* Load and search the abbrev table. */
ds = _dwarf_find_section(cu->cu_dbg, ".debug_abbrev");
- assert(ds != NULL);
+ if (ds == NULL)
+ return (DW_DLE_NO_ENTRY);
+
offset = cu->cu_abbrev_offset_cur;
while (offset < ds->ds_size) {
ret = _dwarf_abbrev_parse(cu->cu_dbg, cu, &offset, &ab, error);
diff --git a/libdwarf/libdwarf_info.c b/libdwarf/libdwarf_info.c
index 261bee6d933e..74765930aaed 100644
--- a/libdwarf/libdwarf_info.c
+++ b/libdwarf/libdwarf_info.c
@@ -27,7 +27,7 @@
#include "_libdwarf.h"
-ELFTC_VCSID("$Id: libdwarf_info.c 3041 2014-05-18 15:11:03Z kaiwang27 $");
+ELFTC_VCSID("$Id: libdwarf_info.c 3136 2014-12-24 16:04:38Z kaiwang27 $");
int
_dwarf_info_first_cu(Dwarf_Debug dbg, Dwarf_Error *error)
@@ -153,7 +153,8 @@ _dwarf_info_load(Dwarf_Debug dbg, Dwarf_Bool load_all, Dwarf_Bool is_info,
return (ret);
offset = dbg->dbg_info_off;
ds = dbg->dbg_info_sec;
- assert(ds != NULL);
+ if (ds == NULL)
+ return (DW_DLE_NO_ENTRY);
} else {
if (dbg->dbg_types_loaded)
return (ret);
diff --git a/libdwarf/libdwarf_init.c b/libdwarf/libdwarf_init.c
index 8e3fbbe5db36..b85c87c59af0 100644
--- a/libdwarf/libdwarf_init.c
+++ b/libdwarf/libdwarf_init.c
@@ -26,7 +26,7 @@
#include "_libdwarf.h"
-ELFTC_VCSID("$Id: libdwarf_init.c 3061 2014-06-02 00:42:41Z kaiwang27 $");
+ELFTC_VCSID("$Id: libdwarf_init.c 3136 2014-12-24 16:04:38Z kaiwang27 $");
static int
_dwarf_consumer_init(Dwarf_Debug dbg, Dwarf_Error *error)
@@ -93,12 +93,7 @@ _dwarf_consumer_init(Dwarf_Debug dbg, Dwarf_Error *error)
}
dbg->dbg_section[cnt].ds_name = NULL;
- if (_dwarf_find_section(dbg, ".debug_abbrev") == NULL ||
- ((dbg->dbg_info_sec = _dwarf_find_section(dbg, ".debug_info")) ==
- NULL)) {
- DWARF_SET_ERROR(dbg, error, DW_DLE_DEBUG_INFO_NULL);
- return (DW_DLE_DEBUG_INFO_NULL);
- }
+ dbg->dbg_info_sec = _dwarf_find_section(dbg, ".debug_info");
/* Try to find the optional DWARF4 .debug_types section. */
dbg->dbg_types_sec = _dwarf_find_next_types_section(dbg, NULL);