Module: wine Branch: master Commit: e87f3dd5b8dc6276289863cdbe4a4498fc64fa4c URL: https://source.winehq.org/git/wine.git/?a=commit;h=e87f3dd5b8dc6276289863cdb...
Author: Eric Pouech eric.pouech@gmail.com Date: Sat Sep 11 10:59:42 2021 +0200
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
---
dlls/dbghelp/dwarf.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/dlls/dbghelp/dwarf.c b/dlls/dbghelp/dwarf.c index 00fa0f6fb60..098576d620f 100644 --- a/dlls/dbghelp/dwarf.c +++ b/dlls/dbghelp/dwarf.c @@ -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);