* dwarf2-frame.c: (execute_cfa_program): Don't access past the

allocated dwarf2_frame_state.initial.regs.
This commit is contained in:
Frederic Riss 2005-11-25 06:42:07 +00:00
parent 58ad504107
commit 92ad9f6b57
2 changed files with 16 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2005-11-25 Frederic Riss <frederic.riss@st.com>
* dwarf2-frame.c: (execute_cfa_program): Don't access past the
allocated dwarf2_frame_state.initial.regs.
2005-11-25 Frederic Riss <frederic.riss@st.com>
* MAINTAINERS (Write After Approval): Add myself to the list.

View File

@ -294,7 +294,17 @@ execute_cfa_program (gdb_byte *insn_ptr, gdb_byte *insn_end,
gdb_assert (fs->initial.reg);
reg = insn & 0x3f;
dwarf2_frame_state_alloc_regs (&fs->regs, reg + 1);
fs->regs.reg[reg] = fs->initial.reg[reg];
if (reg < fs->initial.num_regs)
fs->regs.reg[reg] = fs->initial.reg[reg];
else
fs->regs.reg[reg].how = DWARF2_FRAME_REG_UNSPECIFIED;
if (fs->regs.reg[reg].how == DWARF2_FRAME_REG_UNSPECIFIED)
complaint (&symfile_complaints, _("\
incomplete CFI data; DW_CFA_restore unspecified\n\
register %s (#%d) at 0x%s"),
REGISTER_NAME(DWARF2_REG_TO_REGNUM(reg)),
DWARF2_REG_TO_REGNUM(reg), paddr (fs->pc));
}
else
{