[Bug 33749] New: fix for "called from wrong apartment" bug in ClientRpcChannelBuffer_SendReceive
wine-bugs at winehq.org
wine-bugs at winehq.org
Fri Jun 7 22:42:30 CDT 2013
http://bugs.winehq.org/show_bug.cgi?id=33749
Bug #: 33749
Summary: fix for "called from wrong apartment" bug in
ClientRpcChannelBuffer_SendReceive
Product: Wine
Version: 1.6-rc1
Platform: x86-64
OS/Version: Linux
Status: UNCONFIRMED
Severity: major
Priority: P2
Component: ole32
AssignedTo: wine-bugs at winehq.org
ReportedBy: rosen.diankov at gmail.com
Classification: Unclassified
There are cases where the "called from wrong apartment" gets called in
ole32/rpc.c:ClientRpcChannelBuffer_SendReceive and there is no COM apartment
set.
Actually the thread should be using the implicit multithreaded apartment
created from a previous thread's CoInitializeEx call
http://blogs.msdn.com/b/oldnewthing/archive/2013/04/19/10412399.aspx
Therefore the fix is really simple, add this check right in the beginning of
ClientRpcChannelBuffer_SendReceive
if( !COM_CurrentApt() ) {
apartment_joinmta();
}
Note that in Windows 7 and beyond, there's a new flag that controls the
implicit MTA behavior called APTTYPEQUALIFIER.
http://msdn.microsoft.com/library/dd542638
Wine should support this for Windows 7 and beyond.
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
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