http://bugs.winehq.org/show_bug.cgi?id=27034
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords|win64 | Status|UNCONFIRMED |NEW CC| |focht@gmx.net Summary|MSI crash on amd64 in file |USB-over-Network installer |picker |crashes on destination | |folder selection | |(_BrowseProperty not | |handled) Ever Confirmed|0 |1
--- Comment #1 from Anastasius Focht focht@gmx.net 2011-07-23 04:11:32 CDT --- Hello,
confirming, also happens on 32bit Linux.
Reminds me of bug 10211 (SelectionPath) but this one is different because a required property is missing.
--- snip --- 0023:trace:msi:msi_get_property property L"_BrowseProperty" not found 0023:Call ntdll.RtlAllocateHeap(00110000,00000000,00000020) ret=682ff9d6 0023:Ret ntdll.RtlAllocateHeap() retval=001bf3a8 ret=682ff9d6 0023:Call user32.SetWindowTextW(00010098,001bf3a8 L"_BrowseProperty") ret=68304f99 0023:Call window proc 0x683051c1 (hwnd=0x10098,msg=WM_SETTEXT,wp=00000000,lp=001bf3a8) 0023:Call user32.GetPropW(00010098,6836f45c L"MSIDATA") ret=683051e8 0023:Ret user32.GetPropW() retval=001bf0c8 ret=683051e8 ... 0023:err:msi:msi_dialog_onkillfocus Invalid path L"_BrowseProperty" ... 0023:trace:msi:msi_dialog_onkillfocus edit L"PathEdit" contents changed, set L"_BrowseProperty" ... 0023:trace:msi:msi_dialog_send_event Sending control event L"SetTargetPath" L"[_BrowseProperty]" ... 0023:trace:msi:ControlEvent_HandleControlEvent handling control event L"SetTargetPath" 0023:trace:msi:msi_get_property property L"" not found 0023:Call ntdll.RtlAllocateHeap(00110000,00000008,00000024) ret=68313436 0023:Ret ntdll.RtlAllocateHeap() retval=001c0be0 ret=68313436 0023:trace:msi:ControlEvent_FireSubscribedEvent Firing event L"SelectionPath" 0023:Call user32.GetPropW(00040028,6836f45c L"MSIDATA") ret=68300daa 0023:Ret user32.GetPropW() retval=0019e7f0 ret=68300daa 0023:Call user32.SendMessageW(00040028,0000113e,00000000,0033e698) ret=68300d73 0023:Call window proc 0x68305f03 (hwnd=0x40028,msg=TVM_GETITEMW,wp=00000000,lp=0033e698) 0023:trace:msi:MSISelectionTree_WndProc 0x40028 113e 00000000 0033e698 0023:Call user32.GetPropW(00040028,6836f45c L"MSIDATA") ret=68305f8f 0023:Ret user32.GetPropW() retval=0019e7f0 ret=68305f8f 0023:Call user32.CallWindowProcW(705367e2,00040028,0000113e,00000000,0033e698) ret=68306039 0023:Call window proc 0x705367e2 (hwnd=0x40028,msg=TVM_GETITEMW,wp=00000000,lp=0033e698) 0023:Call user32.GetWindowLongW(00040028,00000000) ret=7052a8f9 0023:Ret user32.GetWindowLongW() retval=001af408 ret=7052a8f9 0023:trace:treeview:TREEVIEW_WindowProc hwnd 0x40028 msg 113e wp=00000000 lp=0033e698 0023:trace:treeview:TREEVIEW_ValidItem invalid item (nil) 0023:Ret window proc 0x705367e2 (hwnd=0x40028,msg=TVM_GETITEMW,wp=00000000,lp=0033e698) retval=00000000 0023:Ret user32.CallWindowProcW() retval=00000000 ret=68306039 0023:Ret window proc 0x68305f03 (hwnd=0x40028,msg=TVM_GETITEMW,wp=00000000,lp=0033e698) retval=00000000 0023:Ret user32.SendMessageW() retval=00000000 ret=68300d73 0023:trace:seh:raise_exception code=c0000005 flags=0 addr=0x68301234 ip=68301234 tid=0023 ... Unhandled exception: page fault on read access to 0x00000020 in 32-bit code ... Backtrace: =>0 0x68301234 msi_dialog_handle_event+0x467(dialog=0x19dd70, control="Tree", attribute="Property", rec=0x1c0be0) [/opt/projects/wine/wine-git/dlls/msi/dialog.c:691] in msi (0x0033e788) 1 0x6830b937 ControlEvent_FireSubscribedEvent+0xba(package=0x15eef0, event="SelectionPath", rec=0x1c0be0) [/opt/projects/wine/wine-git/dlls/msi/events.c:286] in msi (0x0033e7c8) 2 0x6830b619 ControlEvent_SetTargetPath+0x6e(package=0x15eef0, argument="", dialog=0x1bc958) [/opt/projects/wine/wine-git/dlls/msi/events.c:225] in msi (0x0033e7f8) 3 0x6830be18 ControlEvent_HandleControlEvent+0xc0(package=0x15eef0, event="SetTargetPath", argument="", dialog=0x1bc958) [/opt/projects/wine/wine-git/dlls/msi/events.c:457] in msi (0x0033e848) --- snip ---
Dumping the extracted client msi "Control" table with Orca:
--- snip --- EasyCustomizeDlgFT Box GroupBox 10 140 351 40 3 Destination folder EasyCustomizeDlgFT Location Text 22 157 250 18 3 CustomizeDlgLocation-CustomizeDlgLocation ... EasyCustomizeDlgFT Tree SelectionTree 1 1 1 1 3 _BrowseProperty Tree of selections ... BrowseDlg PathEdit PathEdit 25 202 320 18 11 _BrowseProperty OK ... BrowseDlg DirectoryCombo DirectoryCombo 70 55 220 80 393227 _BrowseProperty WixUI_Bmp_Up BrowseDlg DirectoryList DirectoryList 25 83 320 98 15 _BrowseProperty PathLabel --- snip ---
"ControlEvent" table:
--- snip --- BrowseDlg OK SetTargetPath [_BrowseProperty] 1 1 --- snip ---
That "_BrowseProperty" is used as an indirect property, it should contain the name of another property or directory. No installer custom action explicitly sets this property. There is an "INSTALLLOCATION" property which seems to act equal to "INSTALLDIR".
--- snip --- 0023:trace:msi:msi_set_property 0x1466a8 L"INSTALLLOCATION" L"C:\Program Files\USB over Network (Client)\" ... 0023:trace:msi:ACTION_CustomAction Handling custom action L"set_PRIMARYFOLDER" (33 L"PRIMARYFOLDER" L"INSTALLLOCATION") ... 0023:trace:msi:msi_set_property 0x1466a8 L"PRIMARYFOLDER" L"INSTALLLOCATION" --- snip ---
Googling a bit for "_BrowseProperty" and "INSTALLLOCATION" seems to dig up many msi logs where _BrowseProperty = INSTALLLOCATION.
$ sha1sum usb-over-network-client.msi a580cee5660348a80892ed008954345dddb4e3cb usb-over-network-client.msi
$ wine --version wine-1.3.25-1-gdf65f3e
Regards