diff options
author | Doug Evans <dje@google.com> | 2013-03-29 00:18:31 +0000 |
---|---|---|
committer | Doug Evans <dje@google.com> | 2013-03-29 00:18:31 +0000 |
commit | 3e604179f7b76e194ea7a79431dddef0e97bbbe9 (patch) | |
tree | 4213697ffd620d4d8b099d8d34a059bdaa17fe91 /gdb/dwarf2read.c | |
parent | 96c6499e6b3dde9651f70ea25cd354af99a80e0e (diff) | |
download | gdb-3e604179f7b76e194ea7a79431dddef0e97bbbe9.tar.gz |
* dwarf2read.c (create_addrmap_from_index): Complain about bad CU
index numbers.
Diffstat (limited to 'gdb/dwarf2read.c')
-rw-r--r-- | gdb/dwarf2read.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c index 2062448acf5..a3e68cd0613 100644 --- a/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c @@ -2530,9 +2530,18 @@ create_addrmap_from_index (struct objfile *objfile, struct mapped_index *index) iter += 8; cu_index = extract_unsigned_integer (iter, 4, BFD_ENDIAN_LITTLE); iter += 4; - - addrmap_set_empty (mutable_map, lo + baseaddr, hi + baseaddr - 1, - dw2_get_cu (cu_index)); + + if (cu_index < dwarf2_per_objfile->n_comp_units) + { + addrmap_set_empty (mutable_map, lo + baseaddr, hi + baseaddr - 1, + dw2_get_cu (cu_index)); + } + else + { + complaint (&symfile_complaints, + _(".gdb_index address table has invalid CU number %u"), + (unsigned) cu_index); + } } objfile->psymtabs_addrmap = addrmap_create_fixed (mutable_map, |