https://bugs.winehq.org/show_bug.cgi?id=55584 Bug ID: 55584 Summary: Possibly incorrect handling of end_c in ARM64 process_unwind_codes Product: Wine Version: unspecified Hardware: aarch64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: ntdll Assignee: wine-bugs(a)winehq.org Reporter: wine(a)corsix.org Distribution: --- In signal_arm64.c, unwind code 0xe5 (end_c) is considered in three places: 1. get_sequence_len 2. The while loop at the start of process_unwind_codes which skips codes 3. The main while loop in process_unwind_codes which performs codes Place 1 looks correct. Place 2 also looks fine, though I hope we'd never see end_c there (because we should only skip an amount identified by get_sequence_len). I am less certain about place 3 though; it currently treats end_c like end, whereas I think it should treat end_c like nop. The documentation at https://learn.microsoft.com/en-us/cpp/build/arm64-exception-handling?view=ms... isn't great in describing end_c, though the example at "Unwind code for region 2" is a fairly clear example of end_c behaving like a nop for place 3. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.