dbghelp/dwarf: Properly parse line number header for DWARF4 debug info.

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Eric Pouech 2021-09-11 10:59:42 +02:00 committed by Alexandre Julliard
parent e28ec5a0fb
commit e87f3dd5b8
1 changed files with 4 additions and 2 deletions

View File

@ -2222,7 +2222,7 @@ static BOOL dwarf2_parse_line_numbers(const dwarf2_section_t* sections,
{
dwarf2_traverse_context_t traverse;
ULONG_PTR length;
unsigned insn_size, default_stmt;
unsigned insn_size, version, default_stmt;
unsigned line_range, opcode_base;
int line_base;
unsigned char offset_size;
@ -2256,9 +2256,11 @@ static BOOL dwarf2_parse_line_numbers(const dwarf2_section_t* sections,
WARN("out of bounds header\n");
return FALSE;
}
dwarf2_parse_u2(&traverse); /* version */
version = dwarf2_parse_u2(&traverse);
dwarf2_parse_offset(&traverse, offset_size); /* header_len */
insn_size = dwarf2_parse_byte(&traverse);
if (version >= 4)
dwarf2_parse_byte(&traverse); /* max_operations_per_instructions */
default_stmt = dwarf2_parse_byte(&traverse);
line_base = (signed char)dwarf2_parse_byte(&traverse);
line_range = dwarf2_parse_byte(&traverse);