https://bugs.winehq.org/show_bug.cgi?id=52638
Bug ID: 52638 Summary: The 64-bit winmm:mci fails and crashes in test_openCloseWAVE() in Wine Product: Wine Version: unspecified Hardware: x86-64 OS: Linux Status: NEW Severity: normal Priority: P2 Component: winmm&mci Assignee: wine-bugs@winehq.org Reporter: fgouget@codeweavers.com Distribution: ---
The 64-bit winmm:mci crashes in test_openCloseWAVE() in Wine:
mci.c:389: Test failed: mci sysinfo all quantity returned MCIERR_UNRECOGNIZED_COMMAND mci.c:398: Test failed: sysinfo all quantity string and command differ Unhandled exception: page fault on read access to 0x000000000000020d in 64-bit code (0x00000000709b9ca1). [...] Backtrace: =>0 0x00000000709b9ca1 _wcsicmp_l+0x91(str1=*** Invalid address 0x0000000000000002 *** Internal symbol error: unable to access memory location 0000000000000002, str2=*** Invalid address 0x0000000000000000 *** Internal symbol error: unable to access memory location 0000000000000000, locale=000000000064E980) [Z:\home\winetest\winetest\src\dlls\msvcrt\wcs.c:132] in ucrtbase (0x000000000004dd50) 1 0x00000000709b9d6c _wcsicmp+0xc(str1=<internal error>, str2=<internal error>) [Z:\home\winetest\winetest\src\dlls\msvcrt\wcs.c:158] in ucrtbase (0x00000000709b9d60) 2 0x0000000000bf8057 MCI_FindCommand+0x38(s2=<internal error>, s1=<internal error>) [Z:\home\winetest\winetest\src\dlls\winmm\mci.c:946] in winmm (0x00000000709b9d60) 3 0x0000000000bf8057 MCI_FindCommand+0x67(uTbl=<internal error>, verb=<register RDI not accessible in this frame>) [Z:\home\winetest\winetest\src\dlls\winmm\mci.c:938] in winmm (0x00000000709b9d60) 4 0x0000000000bfbcc7 mciSendStringW+0xc57(lpstrCommand=<internal error>, lpstrRet=[<register RSP not accessible in this frame>, uRetLen=[<register RSP not accessible in this frame>, hwndCallback=[<register RSP not accessible in this frame>) [Z:\home\winetest\winetest\src\dlls\winmm\mci.c:1460] in winmm (0x00000000003e0000)
https://test.winehq.org/data/patterns.html#winmm:mci
This only happens with the 64-bit build but as far as I can tell it is systematic and impacts all machines.
A bisect pointed to the following commit as the trigger:
commit 7c76aa05a9d27dd6f5705c4ef90c16862af14f3e Author: Jacek Caban jacek@codeweavers.com Date: Mon Mar 7 14:42:32 2022 +0100
win32u: Move class management implementation from user32.
Signed-off-by: Jacek Caban jacek@codeweavers.com Signed-off-by: Huw Davies huw@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org