[Bug 50704] New: QueueUserAPC() Has Incorrect Error Set When Called On Terminating Thread

WineHQ Bugzilla wine-bugs at winehq.org
Sat Feb 20 15:09:22 CST 2021


https://bugs.winehq.org/show_bug.cgi?id=50704

            Bug ID: 50704
           Summary: QueueUserAPC() Has Incorrect Error Set When Called On
                    Terminating Thread
           Product: Wine
           Version: 6.2
          Hardware: x86-64
                OS: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: ntdll
          Assignee: wine-bugs at winehq.org
          Reporter: spambox1 at koolhoven-home.net
      Distribution: ---

DWORD QueueUserAPC() will return zero with GetLastError() set to return
ERROR_ACCESS_DENIED if called on a terminating thread, but ERROR_GEN_FAILURE is
the expected return of GetLastError() in this scenario.

Unfortunately, it's hard to catch a thread in this state since once a thread
has been terminated completely calling on it results in GetLastError()
returning ERROR_INVALID_HANDLE as it should.

This effects applications using older versions of WebRTC, such as StarCitizen.
The chromium development team noticed this and built a workaround into WebRTC
to make WebRTC compatible with WINE and Windows in this commit:
<https://webrtc.googlesource.com/src/+/dbfb58b850c14eeadac5ac66689fb855c79abf36%5E%21/>,
but the underlying issue still persists in WINE.

-- 
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.



More information about the wine-bugs mailing list