https://bugs.winehq.org/show_bug.cgi?id=54610
Bug ID: 54610 Summary: fusion:asmcache - 32-bit calls to InstallAssembly(..., NULL) crash on Windows Product: Wine Version: unspecified Hardware: x86-64 OS: Windows Status: NEW Severity: normal Priority: P2 Component: fusion Assignee: wine-bugs@winehq.org Reporter: fgouget@codeweavers.com
fusion:asmcache - 32-bit calls to InstallAssembly(..., NULL) crash on Windows:
asmcache.c:846: this is the last test seen before the exception 19e4:asmcache: unhandled exception c0000005 at 0095C478
See https://test.winehq.org/data/patterns.html#fusion:asmcache
The crash only happens in the 32-bit w11pro64 tests which represents 100% of the cases where the test actually runs: * The only VM that has the needed fusion dll is w11pro64. * The dll was installed by running the dotnetfx-1.1.exe installer [1] which is only available in 32-bit format. Thus only the 32-bit dll is available and the 64-bit test is skipped.
The crash happens in the following call: hr = IAssemblyCache_InstallAssembly(cache, 0, L"wine.dll", NULL);
But skipping this call just moves the crash to the next InstallAssembly() call. It's not clear whether the crash is caused by the NULL RefData pointer: the crash still happens if I pass a non-NULL but pretty empty FUSION_INSTALL_REFERENCE structure (in particular szNonCannonicalData == NULL).
[1] https://wiki.winehq.org/Wine_TestBot_VMs#fusion.2C_msvcr71
https://bugs.winehq.org/show_bug.cgi?id=54610
François Gouget fgouget@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |source, testcase
--- Comment #1 from François Gouget fgouget@codeweavers.com --- Notes: * The InstallAssembly() that are meant to fail don't crash. * Skipping the InstallAssembly() calls allows the 9 other ok() calls to run (good news: they succeed!).
https://bugs.winehq.org/show_bug.cgi?id=54610
--- Comment #2 from François Gouget fgouget@codeweavers.com --- Note: This test passes on the wxppro VM. Since the library it is testing seems to be pretty much deprecated, maybe running the test on a very modern Windows version is a bad idea.
https://bugs.winehq.org/show_bug.cgi?id=54610
--- Comment #3 from François Gouget fgouget@codeweavers.com --- Correction: the 32-bit and 64-bit versions of the test actually run and succeed on both Windows 7 VMs too: w7u* and w7pro64.
It can also run on the retired Windows 2003 and Vista VMs. So to summarize:
Win. ver. 32-bit 64-bit Comment wxppro Success - No 64-bit XP available for testing w2003std Success - 32-bit OS wvista Success - 32-bit OS wvistau64 Success Success w7u Success - 32-bit OS w7pro64 Success Success w8* missing missing w10* missing missing w11 crash missing
https://bugs.winehq.org/show_bug.cgi?id=54610
François Gouget fgouget@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|fusion:asmcache - 32-bit |fusion:asmcache - 32-bit |calls to |calls to |InstallAssembly(..., NULL) |InstallAssembly(..., NULL) |crash on Windows |crash on Windows 11