[Bug 60543] New: ntdll: on macOS, check_invalid_gsbase() mistakes page-straddling access violations for %gs faults and retries them forever
http://bugs.winehq.org/show_bug.cgi?id=60543 Bug ID: 60543 Summary: ntdll: on macOS, check_invalid_gsbase() mistakes page-straddling access violations for %gs faults and retries them forever Product: Wine Version: unspecified Hardware: arm OS: MacOS Status: UNCONFIRMED Severity: critical Priority: P2 Component: ntdll Assignee: wine-bugs@list.winehq.org Reporter: opendev@netforza.com Target Milestone: --- On macOS, Diablo II: Resurrected (launched from Battle.net) hangs at startup with a black window; the main thread spins in signal handling. Cause: an access violation on an instruction that straddles into an inaccessible page is mistaken by check_invalid_gsbase() for a %gs fault and silently retried forever. D2R's copy protection decrypts code pages on demand through exactly this kind of fault, so it retries ~40,000 times per second and never progresses. Patch: https://github.com/SergioB/d2r-macos-wine-fix/tree/main/patches (0001) Full analysis: https://github.com/SergioB/d2r-macos-wine-fix/blob/main/docs/investigation.m... Environment: MacBook Air M3, macOS 26.6.2, Wine 11.0, D2R 3.3.93847, Battle.net 2.53.5. Reproduced on vanilla Wine: [version] -- 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.
participants (1)
-
WineHQ Bugzilla