[2/2] msi: Try the registered install location first when resolving the target directory.

Alexandre Julliard julliard at winehq.org
Tue Jul 31 11:06:53 CDT 2012


Hans Leidekker <hans at codeweavers.com> writes:

> ---
>  dlls/msi/action.c  |   18 +++++++++++++++---
>  dlls/msi/msipriv.h |    1 +
>  2 files changed, 16 insertions(+), 3 deletions(-)

It doesn't work here:

../../../../wine/tools/runtest -q -P wine -M msi.dll -T ../../.. -p msi_test.exe.so ../../../../wine/dlls/msi/tests/package.c && touch package.ok
wine: Unhandled page fault on read access to 0x20006308e at address 0x2b39152590cf (thread 002c), starting debugger...
Unhandled exception: page fault on read access to 0x20006308e in 64-bit code (0x00002b39152590cf).
Register dump:
 rip:00002b39152590cf rsp:000000000022f700 rbp:0000000000000001 eflags:00010246 (  R- --  I  Z- -P- )
 rax:0000000000063090 rbx:0000000000000002 rcx:00000000000666c2 rdx:0000000000000000
 rsi:0000000000000000 rdi:0000000000000001  r8:0000000000000010  r9:000000000022f790 r10:000000000022f740
 r11:000000020006308e r12:0000000000062f10 r13:0000000000000000 r14:000000000005f1f8 r15:00002b39136f0d90
Stack dump:
0x000000000022f700:  0000000000000000 0000000000000000
0x000000000022f710:  0000000000000000 0000000000000000
0x000000000022f720:  0000000000000000 0000000000000008
0x000000000022f730:  000000000022f790 000000000022f740
0x000000000022f740:  00002b39136f0d90 00000000000666c0
0x000000000022f750:  00000000000658e0 0000000000063042
0x000000000022f760:  0000000000000054 000000000005f228
0x000000000022f770:  0000000000000000 0000000000065810
0x000000000022f780:  000000000005f190 00002b391525ae9c
0x000000000022f790:  0000000000000000 0000000000000000
0x000000000022f7a0:  00002b39136f0d90 00002b391528a1fc
0x000000000022f7b0:  0000000000064f00 0000000000000030
Backtrace:
=>0 0x00002b39152590cf msi_build_directory_name+0x25f(count=0x2) [/home/julliard/wine/build/obj-elf64/dlls/msi/../../../wine/dlls/msi/action.c:2157] in msi (0x0000000000000001)
  1 0x00002b391525ae9c ACTION_CostFinalize+0x35b(package=0x5f190) [/home/julliard/wine/build/obj-elf64/dlls/msi/../../../wine/dlls/msi/action.c:2179] in msi (0x000000000005f190)
  2 0x00002b391524e45b ACTION_HandleStandardAction+0xba(package=0x5f190, action="CostFinalize", rc=0x22f85c) [/home/julliard/wine/build/obj-elf64/dlls/msi/../../../wine/dlls/msi/action.c:7397] in msi (0x000000000022f85c)
  3 0x00002b391525d877 ACTION_PerformUIAction+0x46(package=0x5f190, action="CostFinalize", script=0xffffffff) [/home/julliard/wine/build/obj-elf64/dlls/msi/../../../wine/dlls/msi/action.c:7448] in msi (0x0000000000059f20)
  4 0x00002b391528b1d3 MsiDoActionW+0xc2(hInstall=0x2, szAction="CostFinalize") [/home/julliard/wine/build/obj-elf64/dlls/msi/../../../wine/dlls/msi/install.c:108] in msi (0x0000000000000057)
  5 0x00002b391528b436 MsiDoActionA+0x105(hInstall=0x2, szAction="CostFinalize") [/home/julliard/wine/build/obj-elf64/dlls/msi/../../../wine/dlls/msi/install.c:56] in msi (0x00002b3914b9af00)
  6 0x00002b3914b5fabe func_package+0x45cd() [/home/julliard/wine/build/obj-elf64/dlls/msi/tests/../../../../wine/dlls/msi/tests/package.c:3017] in msi_test (0x000000000022fadc)
  7 0x00002b3914a922aa main+0x2c9(argc=<internal error>, argv=<internal error>) [/home/julliard/wine/build/obj-elf64/dlls/msi/tests/../../../../wine/include/wine/test.h:557] in msi_test (0x00002b3914dc2fe0)
  8 0x00002b3914b7b1b2 __wine_spec_exe_entry+0xa1(peb=<internal error>) [/home/julliard/wine/build/obj-elf64/dlls/winecrt0/../../../wine/dlls/winecrt0/exe_entry.c:36] in msi_test (0x00002b39131238f0)
  9 0x000000007b873391 start_process+0xb0(peb=0x7fffffbef000) [/home/julliard/wine/build/obj-elf64/dlls/kernel32/../../../wine/dlls/kernel32/process.c:1052] in kernel32 (0x00002b3914b7b110)
  10 0x00002b39139889de call_thread_func+0x6d(entry=0x7b8732e0, arg=0x7fffffbef000, frame=<internal error>) [/home/julliard/wine/build/obj-elf64/dlls/ntdll/../../../wine/dlls/ntdll/signal_x86_64.c:3230] in ntdll (0x00007fff5dbb09f0)
  11 0x00002b39139820ca call_thread_entry_point+0x29() in ntdll (0x00007fff5dbb09f0)
  12 0x00002b39139549d6 start_process+0x15(kernel_start=<internal error>) [/home/julliard/wine/build/obj-elf64/dlls/ntdll/../../../wine/dlls/ntdll/loader.c:2653] in ntdll (0x00007fff5dbb09f0)
  13 0x00002b3912dfd283 wine_call_on_stack+0x12() in libwine.so.1 (0x00007fff5dbb09f0)
  14 0x00002b3912dfd2d9 wine_switch_to_stack+0x8(func=<internal error>, arg=<internal error>, stack=<internal error>) [/home/julliard/wine/build/obj-elf64/libs/wine/../../../wine/libs/wine/port.c:59] in libwine.so.1 (0x00007fffffbef000)
  15 0x00002b391395a480 LdrInitializeThunk+0x45f(kernel_start=0x7b8732e0, unknown2=<internal error>, unknown3=<internal error>, unknown4=<internal error>) [/home/julliard/wine/build/obj-elf64/dlls/ntdll/../../../wine/dlls/ntdll/loader.c:2709] in ntdll (0x00007fffffbef000)
  16 0x000000007b8797ed __wine_kernel_init+0x91c() [/home/julliard/wine/build/obj-elf64/dlls/kernel32/../../../wine/dlls/kernel32/process.c:1255] in kernel32 (0x00002b3913bea620)
  17 0x00002b391395acf4 __wine_process_init+0x143() [/home/julliard/wine/build/obj-elf64/dlls/ntdll/../../../wine/dlls/ntdll/loader.c:2918] in ntdll (0x00007fff5dbb1ca0)
  18 0x00002b3912dfb488 wine_init+0x297(argc=0x3, argv=0x7fff5dbb2198, error="", error_size=0x400) [/home/julliard/wine/build/obj-elf64/libs/wine/../../../wine/libs/wine/loader.c:831] in libwine.so.1 (0x00007fff5dbb1ca0)
  19 0x000000007bf00da2 main+0x71(argc=0x3, argv=0x7fff5dbb2198) [/home/julliard/wine/build/obj-elf64/loader/../../wine/loader/main.c:230] in <wine-loader> (0x00007fff5dbb2198)
  20 0x00002b391338dead __libc_start_main+0xfc(main=<is not available>, argc=<is not available>, ubp_av=<is not available>, init=<is not available>, fini=<is not available>, rtld_fini=<is not available>, stack_end=0x7fff5dbb2188) [/home/aurel32/eglibc/eglibc-2.13/csu/libc-start.c:228] in libc.so.6 (0x0000000000000000)
  21 0x000000007bf00e9d _start+0x28() in <wine-loader> (0x0000000000000000)
0x00002b39152590cf msi_build_directory_name+0x25f [/home/julliard/wine/build/obj-elf64/dlls/msi/../../../wine/dlls/msi/action.c:2157] in msi: cmpw	$5c,(%r11)
2157	        if ( i + 1 != count && dir[strlenW( dir ) - 1] != '\\') strcatW( dir, szBackSlash );

-- 
Alexandre Julliard
julliard at winehq.org



More information about the wine-devel mailing list