diff options
| -rw-r--r-- | libcpu/i386_disasm.c | 4 | ||||
| -rw-r--r-- | libdw/dwarf_getpubnames.c | 13 |
2 files changed, 12 insertions, 5 deletions
diff --git a/libcpu/i386_disasm.c b/libcpu/i386_disasm.c index 9024571c..843fd749 100644 --- a/libcpu/i386_disasm.c +++ b/libcpu/i386_disasm.c @@ -589,22 +589,26 @@ i386_disasm (const uint8_t **startp, const uint8_t *end, GElf_Addr addr, #endif case 0x98: +#ifdef X86_64 if (prefixes == (has_rex_w | has_rex)) { str = "cltq"; break; } +#endif if (prefixes & ~has_data16) goto print_prefix; str = prefixes & has_data16 ? "cbtw" : "cwtl"; break; case 0x99: +#ifdef X86_64 if (prefixes == (has_rex_w | has_rex)) { str = "cqto"; break; } +#endif if (prefixes & ~has_data16) goto print_prefix; str = prefixes & has_data16 ? "cwtd" : "cltd"; diff --git a/libdw/dwarf_getpubnames.c b/libdw/dwarf_getpubnames.c index 08b96cdc..fcf6eca4 100644 --- a/libdw/dwarf_getpubnames.c +++ b/libdw/dwarf_getpubnames.c @@ -1,5 +1,5 @@ /* Get public symbol information. - Copyright (C) 2002, 2003, 2004, 2005 Red Hat, Inc. + Copyright (C) 2002, 2003, 2004, 2005, 2008 Red Hat, Inc. This file is part of Red Hat elfutils. Written by Ulrich Drepper <[email protected]>, 2002. @@ -129,10 +129,13 @@ get_offsets (Dwarf *dbg) mem[cnt].cu_offset = read_8ubyte_unaligned (dbg, readp + 2); /* Determine the size of the CU header. */ - assert (dbg->sectiondata[IDX_debug_info] != NULL); - assert (dbg->sectiondata[IDX_debug_info]->d_buf != NULL); - assert (mem[cnt].cu_offset + 3 - < dbg->sectiondata[IDX_debug_info]->d_size); + if (dbg->sectiondata[IDX_debug_info] == NULL + || dbg->sectiondata[IDX_debug_info]->d_buf == NULL + || mem[cnt].cu_offset + 3 >= dbg->sectiondata[IDX_debug_info]->d_size) + { + __libdw_seterrno (DWARF_E_INVALID_DWARF); + goto err_return; + } unsigned char *infop = ((unsigned char *) dbg->sectiondata[IDX_debug_info]->d_buf + mem[cnt].cu_offset); |
