Dan Kegel dank@kegel.com writes:
Dan> This is on RH9 SMP with wine-20031118. Trying to run the MS SFU Dan> 3.0 (hey, I got it for $5 from that special offer they ran on Dan> slashdot a couple weeks ago...) setup.exe from the commandline Dan> yields the crash: Dan> Unhandled exception: page fault on read access to 0x0049002e in Dan> 32-bit code (0x400b73fd). In 32-bit mode. 0x400b73fd
OK, I've now run this under valgrind, with commandline valgrind --trace-children=yes --num-callers=10 wine y:setup.exe >s.log 2>&1 There are a few interesting warnings from Valgrind (along with a lot of chaff I've filtered out). I won't have time to dig into the sources today, but here's the log in case anyone else wants to take a peek. I bet at least one of these is a problem in Wine.
Wouldn't it be funny if we found a bug in msiinst.exe? - Dan
==7555== Conditional jump or move depends on uninitialised value(s) ==7555== at 0x4139F30C: get_full_path_helper (path.c:475) ==7555== by 0x4139F8BF: RtlGetFullPathName_U (path.c:565) ==7555== by 0x4139A8BA: find_dll_file (loader.c:1377) ==7555== by 0x4139AD11: load_dll (loader.c:1419) ==7555== by 0x4139B0E5: LdrLoadDll (loader.c:1505) ==7555== by 0x419F575E: load_library (module.c:693) ==7555== by 0x419F57EA: LoadLibraryExA (module.c:735) ==7555== by 0x419F5873: LoadLibraryA (module.c:775) ... ==7558== Conditional jump or move depends on uninitialised value(s) ==7558== at 0x4139F30C: get_full_path_helper (path.c:475) ==7558== by 0x4139F8BF: RtlGetFullPathName_U (path.c:565) ==7558== by 0x4139FC20: RtlSetCurrentDirectory_U (path.c:728) ==7558== by 0x419C7654: DRIVE_Chdir (../../files/drive.c:1240) ==7558== by 0x419C4F37: DRIVE_Init (../../files/drive.c:402) ==7558== by 0x419FCE94: process_init (process.c:704) ==7558== by 0x419FD173: __wine_kernel_init (process.c:773) ==7558== by 0x4139BC2A: __wine_process_init (loader.c:1952) ==7558== by 0x4023ED74: wine_init (loader.c:434) ==7558== by 0x3C001BBC: main (main.c:33) ... ==7558== Invalid read of size 4 ==7558== at 0x401A97: (within /tmp/IXP001.TMP/msiinst.exe) ==7558== by 0x4023EF1C: (within /usr/local/lib/libwine.so.1) ==7558== Address 0x423BEF30 is not stack'd, malloc'd or free'd ==7558== ==7558== Invalid read of size 4 ==7558== at 0x401AA4: (within /tmp/IXP001.TMP/msiinst.exe) ==7558== by 0x4023EF1C: (within /usr/local/lib/libwine.so.1) ==7558== Address 0x423BEA0C is not stack'd, malloc'd or free'd ==7558== ==7558== Conditional jump or move depends on uninitialised value(s) ==7558== at 0x4263E4B4: MessageBoxIndirectA (../../windows/msgbox.c:407) ==7558== by 0x4263E421: MessageBoxExA (../../windows/msgbox.c:373) ==7558== by 0x4263E38E: MessageBoxA (../../windows/msgbox.c:341) ==7558== by 0x4010F6: (within /tmp/IXP001.TMP/msiinst.exe) ==7558== ==7558== Conditional jump or move depends on uninitialised value(s) ==7558== at 0x413A53F3: RtlInitAnsiString (rtlstr.c:91) ==7558== by 0x413A5627: RtlCreateUnicodeStringFromAsciiz (rtlstr.c:237) ==7558== by 0x4263E5AC: MessageBoxIndirectA (../../windows/msgbox.c:408) ==7558== by 0x4263E421: MessageBoxExA (../../windows/msgbox.c:373) ==7558== by 0x4263E38E: MessageBoxA (../../windows/msgbox.c:341) ==7558== by 0x4010F6: (within /tmp/IXP001.TMP/msiinst.exe) ==7558== ==7558== Use of uninitialised value of size 4 ==7558== at 0x413A53FD: RtlInitAnsiString (rtlstr.c:93) ==7558== by 0x413A5627: RtlCreateUnicodeStringFromAsciiz (rtlstr.c:237) ==7558== by 0x4263E5AC: MessageBoxIndirectA (../../windows/msgbox.c:408) ==7558== by 0x4263E421: MessageBoxExA (../../windows/msgbox.c:373) ==7558== by 0x4263E38E: MessageBoxA (../../windows/msgbox.c:341) ==7558== by 0x4010F6: (within /tmp/IXP001.TMP/msiinst.exe) ==7558== ==7558== Invalid read of size 1 ==7558== at 0x413A53FD: RtlInitAnsiString (rtlstr.c:93) ==7558== by 0x413A5627: RtlCreateUnicodeStringFromAsciiz (rtlstr.c:237) ==7558== by 0x4263E5AC: MessageBoxIndirectA (../../windows/msgbox.c:408) ==7558== by 0x4263E421: MessageBoxExA (../../windows/msgbox.c:373) ==7558== by 0x4263E38E: MessageBoxA (../../windows/msgbox.c:341) ==7558== by 0x4010F6: (within /tmp/IXP001.TMP/msiinst.exe) ==7558== Address 0x49002E is not stack'd, malloc'd or free'd ==7558== ==7558== Conditional jump or move depends on uninitialised value(s) ==7558== at 0x4023DF7F: wine_ldt_is_system (ldt.c:137) ==7558== by 0x413A990F: init_handler (signal_i386.c:618) ==7558== by 0x413A9988: setup_exception (signal_i386.c:720) ==7558== by 0x413A9E30: segv_handler (signal_i386.c:962) ==7558== by 0x4017FB87: ??? (vg_hashtable.c:213) ... ==7558== Conditional jump or move depends on uninitialised value(s) ==7558== at 0x413A994A: init_handler (signal_i386.c:632) ==7558== by 0x413A9988: setup_exception (signal_i386.c:720) ==7558== by 0x413A9E30: segv_handler (signal_i386.c:962) ==7558== by 0x4017FB87: ??? (vg_hashtable.c:213) ... ==7558== Use of uninitialised value of size 4 ==7558== at 0x413A99FE: setup_exception (signal_i386.c:750) ==7558== by 0x413A9E30: segv_handler (signal_i386.c:962) ==7558== by 0x4017FB87: ??? (vg_hashtable.c:213) ==7558== ==7558== Invalid write of size 4 ==7558== at 0x413A99FE: setup_exception (signal_i386.c:750) ==7558== by 0x413A9E30: segv_handler (signal_i386.c:962) ==7558== by 0x4017FB87: ??? (vg_hashtable.c:213) ==7558== Address 0x423BE5C0 is not stack'd, malloc'd or free'd ==7558==