[PATCH 10/10] dbghelp: Properly parse line number header for DWARF4 debug info
Eric Pouech
eric.pouech at gmail.com
Sat Sep 11 03:59:42 CDT 2021
Signed-off-by: Eric Pouech <eric.pouech at gmail.com>
---
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 1f9c50a161f..902a1d227b9 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);
More information about the wine-devel
mailing list