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