[Bug 38014] New: CCCP Insurgent v2007-01-01 crashes when querying system information via DxDiag

wine-bugs at winehq.org wine-bugs at winehq.org
Wed Feb 4 16:36:15 CST 2015


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

            Bug ID: 38014
           Summary: CCCP Insurgent v2007-01-01 crashes when querying
                    system information via DxDiag
           Product: Wine
           Version: 1.7.35
          Hardware: x86-64
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: -unknown
          Assignee: wine-bugs at winehq.org
          Reporter: focht at gmx.net
      Distribution: ---

Hello folks,

as the summary says.

--- snip ---
$ WINEDEBUG=+tid,+seh,+relay,+dxdiag,+variant,+ole wine
./CCCP-Insurgent-2007-01-01.exe >>log.txt 2>&1
...
0024:trace:dxdiag:IDxDiagProviderImpl_GetRootContainer (0x1790a8,0x90e940)
0024:trace:dxdiag:DXDiag_CreateDXDiagContainer
({7d0f462f-4064-4862-bc7f-933e5058c10f}, 0x90e940)
0024:Call ntdll.RtlAllocateHeap(00110000,00000000,00000010) ret=7d3aabbc
0024:Ret  ntdll.RtlAllocateHeap() retval=001829c8 ret=7d3aabbc
0024:trace:dxdiag:IDxDiagProviderImpl_AddRef (0x1790a8)->(ref before=1)
0024:trace:dxdiag:IDxDiagContainerImpl_AddRef (0x1829c8)->(ref before=0)
0024:trace:dxdiag:IDxDiagContainerImpl_GetChildContainer (0x1829c8,
L"DxDiag_SystemInfo", 0x90e8f8)
0024:Call ntdll.RtlAllocateHeap(00110000,00000000,00000024) ret=7d3aa540
0024:Ret  ntdll.RtlAllocateHeap() retval=00195b10 ret=7d3aa540
0024:trace:dxdiag:IDxDiagContainerImpl_GetChildContainer Trying to get
container L"DxDiag_SystemInfo"
0024:Call KERNEL32.lstrcmpW(00179130 L"DxDiag_SystemInfo",00195b10
L"DxDiag_SystemInfo") ret=7d3aa413
0024:Ret  KERNEL32.lstrcmpW() retval=00000000 ret=7d3aa413
0024:trace:dxdiag:DXDiag_CreateDXDiagContainer
({7d0f462f-4064-4862-bc7f-933e5058c10f}, 0x90e8f8)
0024:Call ntdll.RtlAllocateHeap(00110000,00000000,00000010) ret=7d3aabbc
0024:Ret  ntdll.RtlAllocateHeap() retval=001958c8 ret=7d3aabbc
0024:trace:dxdiag:IDxDiagProviderImpl_AddRef (0x1790a8)->(ref before=2)
0024:trace:dxdiag:IDxDiagContainerImpl_AddRef (0x1958c8)->(ref before=0)
0024:trace:dxdiag:IDxDiagContainerImpl_GetChildContainer Succeeded in getting
the container instance
0024:Call ntdll.RtlFreeHeap(00110000,00000000,00195b10) ret=7d3aa76f
0024:Ret  ntdll.RtlFreeHeap() retval=00000001 ret=7d3aa76f
0024:trace:dxdiag:IDxDiagContainerImpl_EnumChildContainerNames (0x1958c8, 0,
0x90e6d0, 256)
0024:trace:dxdiag:IDxDiagContainerImpl_EnumChildContainerNames Failed to find
container name at specified index
0024:trace:dxdiag:IDxDiagContainerImpl_GetChildContainer (0x1958c8, L"",
0x90e8fc)
0024:Call ntdll.RtlAllocateHeap(00110000,00000000,00000002) ret=7d3aa540
0024:Ret  ntdll.RtlAllocateHeap() retval=0018a4b8 ret=7d3aa540
0024:trace:dxdiag:IDxDiagContainerImpl_GetChildContainer Trying to get
container L""
0024:Call ntdll.RtlFreeHeap(00110000,00000000,0018a4b8) ret=7d3aa76f
0024:Ret  ntdll.RtlFreeHeap() retval=00000001 ret=7d3aa76f
0024:trace:dxdiag:IDxDiagContainerImpl_Release (0x1958c8)->(ref before=1)
0024:trace:dxdiag:IDxDiagProviderImpl_Release (0x1790a8)->(ref before=3)
0024:Call ntdll.RtlFreeHeap(00110000,00000000,001958c8) ret=7d3aa14d
0024:Ret  ntdll.RtlFreeHeap() retval=00000001 ret=7d3aa14d
0024:Call oleaut32.VariantInit(0090e6c0) ret=0040b276
0024:trace:variant:VariantInit (0x90e6c0)
0024:Ret  oleaut32.VariantInit() retval=0090e6c0 ret=0040b276
0024:trace:seh:raise_exception code=c0000005 flags=0 addr=0x40b276 ip=0040b276
tid=0024
0024:trace:seh:raise_exception  info[0]=00000000
0024:trace:seh:raise_exception  info[1]=00000000
0024:trace:seh:raise_exception  eax=0090e6c0 ebx=005659c8 ecx=0090e8d8
edx=0090ef8c esi=0090e928 edi=00000000
0024:trace:seh:raise_exception  ebp=0090e740 esp=0090e6c0 cs=0023 ds=002b
es=002b fs=0063 gs=006b flags=00210206
0024:trace:seh:call_stack_handlers calling handler at 0x5341e2 code=c0000005
flags=0 
--- snip ---

The app doesn't have proper error handling (HRESULT check), it just continues
after failure of 'IDxDiagContainer::EnumChildContainerNames' on
'DxDiag_SystemInfo' container.
The following 'IDxDiagContainer::GetChildContainer' method call gets an empty
string passed.
The app expects a valid 'IDxDiagContainer' instance - the current container.

After fixing this there is another crash, albeit different issue
('DxDiag_SoundDevices' props missing).

$ sha1sum CCCP-Insurgent-2007-01-01.exe 
21a1171a7993aef75bcfc8304a09333c77bb32a2  CCCP-Insurgent-2007-01-01.exe

$ du -sh CCCP-Insurgent-2007-01-01.exe 
608K    CCCP-Insurgent-2007-01-01.exe

Regards

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