http://bugs.winehq.org/show_bug.cgi?id=8945
--- Comment #58 from Dan Kegel dank@kegel.com 2008-03-11 16:48:25 --- Seems to get further, but installing Photoshop CS3 still crashes for me in advapi32 from msi.
Here's my recipe:
rm -rf .wine sh winetricks -q corefonts vcrun6 wsh56 msxml3 wine ADBEPHSPCS3_WWE.exe
The installer unpacks to ~/Desktop/Adobe CS3/Photoshop/Adobe CS3 and you can repeat the problem by cd'ing there and running Setup.exe.
To get a better stack dump, recompile advapi32 with -O0, then do $ WINEDEBUG=+msi,+security,+relay wine Setup.exe
0025:Call msi.MsiSourceListAddSourceW(008c8868 L"{D1BB4446-AE9C-4256-9A7F-4D46604D2462}",00000000,00000000,0133eb88 L"Z:\home\dkegel\Desktop\Adobe CS3\Photoshop\Adobe CS3") ret=00432e4a trace:msi:MsiSourceListAddSourceW L"{D1BB4446-AE9C-4256-9A7F-4D46604D2462}" (null) L"Z:\home\dkegel\Desktop\Adobe CS3\Photoshop\Adobe CS3" 0025:Call advapi32.LookupAccountNameW(00000000,00000000,00000000,7cbcdf04,00000000,7cbcdf00,00000000) ret=7ca897d3 fixme:advapi:LookupAccountNameW (null) (null) (nil) 0x7cbcdf04 (nil) 0x7cbcdf00 (nil) - stub ... Unhandled exception: page fault on read access to 0x00000000 in 32-bit code (0xb7eda0b8). ... =>1 0xb7eda0b8 strcmpW+0xa(str1=0x0, str2=0x7e39af08) [include/wine/unicode.h:230] in libwine.so.1 (0x7cbcddb8) 2 0x7e3893b6 LookupAccountNameW+0xe4(lpSystemName=0x0, lpAccountName=0x0, Sid=0x0, cbSid=0x7cbcdf04, ReferencedDomainName=0x0, cchReferencedDomainName=0x7cbcdf00, peUse=0x0) [advapi32/security.c:2488] 3 0x7bc51c20 call_entry_point+0x20() in ntdll (0x7cbcde48) 4 0x7bc52b85 relay_call_from_32+0x1a1(descr=0x7e3a281c, idx=<?>, stack=0x7cbcdecc) [ntdll/relay.c:372] 5 0x7e36dbe1 in advapi32 (+0xdbe1) (0x7cbcdf18) 6 0x7bc51c20 call_entry_point+0x20() in ntdll (0x7cbcdf3c) 7 0x7bc52b85 relay_call_from_32+0x1a1(descr=0x7cab5618, idx=<?>, stack=0x7cbcdfc0) [ntdll/relay.c:372] in ntdll (0x7cbcdfac) 8 0x7ca36109 in msi (+0x6109) (0x7cbce10c) 0xb7eda0b8 strcmpW+0xa ... [include/wine/unicode.h:230] in libwine.so.1: movzwl 0x0(%ecx),%eax 230 while (*str1 && (*str1 == *str2)) { str1++; str2++; }