[Bug 47411] TreeSize Free Portable exits silently on startup due to missing shell32.SHMultiFileProperties stub

wine-bugs at winehq.org wine-bugs at winehq.org
Sun Jun 30 05:29:42 CDT 2019


https://bugs.winehq.org/show_bug.cgi?id=47411

Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|TreeSize Free Portable      |TreeSize Free Portable
                   |won't open                  |exits silently on startup
                   |                            |due to missing
                   |                            |shell32.SHMultiFileProperti
                   |                            |es stub
                 CC|                            |focht at gmx.net
                URL|https://www.jam-software.de |https://web.archive.org/web
                   |/treesize_free/TreeSizeFree |/20190516124524/https://www
                   |-Portable.zip               |.jam-software.de/treesize_f
                   |                            |ree/TreeSizeFree-Portable.z
                   |                            |ip
          Component|-unknown                    |shell32

--- Comment #2 from Anastasius Focht <focht at gmx.net> ---
Hello folks,

confirming. The file is packed with UPX. Apparently the uncompressor stub isn't
that lenient with missing Win32 exports.

--- snip ---
$ WINEDEBUG=+seh,+relay wine ./TreeSizeFree.exe >>log.txt 2>&1
...
002b:Ret  PE DLL (proc=0x6c2c13e0,module=0x6c2c0000
L"wsock32.dll",reason=PROCESS_ATTACH,res=0x34fd24) retval=1
002b:Starting process L"Z:\\home\\focht\\Downloads\\ts\\TreeSizeFree.exe"
(entryproc=0x23e7b40)
002b:Call KERNEL32.LoadLibraryA(023f5a34 "KERNEL32.DLL") ret=023e7c81
002b:Ret  KERNEL32.LoadLibraryA() retval=7b430000 ret=023e7c81
002b:Call KERNEL32.GetProcAddress(7b430000,02313009 "SetFileTime") ret=023e7c96
002b:Ret  KERNEL32.GetProcAddress() retval=7b4395cc ret=023e7c96
002b:Call KERNEL32.GetProcAddress(7b430000,02313016 "GetFileType") ret=023e7c96
002b:Ret  KERNEL32.GetProcAddress() retval=7b435b2c ret=023e7c96
002b:Call KERNEL32.GetProcAddress(7b430000,02313023 "GetFileTime") ret=023e7c96
002b:Ret  KERNEL32.GetProcAddress() retval=7b435b0c ret=023e7c96
002b:Call KERNEL32.GetProcAddress(7b430000,02313030 "GetACP") ret=023e7c96
002b:Ret  KERNEL32.GetProcAddress() retval=7b434dec ret=023e7c96
002b:Call KERNEL32.GetProcAddress(7b430000,02313038 "GetExitCodeProcess")
ret=023e7c96
002b:Ret  KERNEL32.GetProcAddress() retval=7b43594c ret=023e7c96 
...
002b:Call KERNEL32.LoadLibraryA(023f5ad7 "shell32.dll") ret=023e7c81
002b:Ret  KERNEL32.LoadLibraryA() retval=7db70000 ret=023e7c81
002b:Call KERNEL32.GetProcAddress(7db70000,023154ef "SHBrowseForFolderW")
ret=023e7c96
002b:Ret  KERNEL32.GetProcAddress() retval=7db7d82c ret=023e7c96
002b:Call KERNEL32.GetProcAddress(7db70000,02315503 "SHBindToParent")
ret=023e7c96
002b:Ret  KERNEL32.GetProcAddress() retval=7db7d7cc ret=023e7c96
002b:Call KERNEL32.GetProcAddress(7db70000,02315513 "PathMakeUniqueName")
ret=023e7c96
002b:Ret  KERNEL32.GetProcAddress() retval=7db7c14c ret=023e7c96
002b:Call KERNEL32.GetProcAddress(7db70000,02315527 "SHCreateShellItem")
ret=023e7c96
002b:Ret  KERNEL32.GetProcAddress() retval=7db7d96c ret=023e7c96
002b:Call KERNEL32.GetProcAddress(7db70000,0231553a "ILFindLastID")
ret=023e7c96
002b:Ret  KERNEL32.GetProcAddress() retval=7db7bd6c ret=023e7c96
002b:Call KERNEL32.GetProcAddress(7db70000,02315548 "SHGetFileInfoW")
ret=023e7c96
002b:Ret  KERNEL32.GetProcAddress() retval=7db7dbac ret=023e7c96
002b:Call KERNEL32.GetProcAddress(7db70000,02315558 "ILCreateFromPathW")
ret=023e7c96
002b:Ret  KERNEL32.GetProcAddress() retval=7db7d14c ret=023e7c96
002b:Call KERNEL32.GetProcAddress(7db70000,0231556b "SHGetDesktopFolder")
ret=023e7c96
002b:Ret  KERNEL32.GetProcAddress() retval=7db7db4c ret=023e7c96
002b:Call KERNEL32.GetProcAddress(7db70000,0231557f "ILRemoveLastID")
ret=023e7c96
002b:Ret  KERNEL32.GetProcAddress() retval=7db7bd8c ret=023e7c96
002b:Call KERNEL32.GetProcAddress(7db70000,0231558f "SHChangeNotify")
ret=023e7c96
002b:Ret  KERNEL32.GetProcAddress() retval=7db7d84c ret=023e7c96
002b:Call KERNEL32.GetProcAddress(7db70000,0231559f
"SHChangeNotification_Unlock") ret=023e7c96
002b:Ret  KERNEL32.GetProcAddress() retval=7db7e64c ret=023e7c96
002b:Call KERNEL32.GetProcAddress(7db70000,023155bc "ShellExecuteW")
ret=023e7c96
002b:Ret  KERNEL32.GetProcAddress() retval=7db7e34c ret=023e7c96
002b:Call KERNEL32.GetProcAddress(7db70000,023155cb "ShellExecuteA")
ret=023e7c96
002b:Ret  KERNEL32.GetProcAddress() retval=7db7e2cc ret=023e7c96
002b:Call KERNEL32.GetProcAddress(7db70000,023155da "SHMultiFileProperties")
ret=023e7c96
002b:Ret  KERNEL32.GetProcAddress() retval=00000000 ret=023e7c96
002b:Call KERNEL32.ExitProcess(00000000) ret=023e7ca7
...
--- snip ---

Microsoft docs:

https://docs.microsoft.com/en-us/windows/desktop/api/shlobj/nf-shlobj-shmultifileproperties

Wine source:

https://source.winehq.org/git/wine.git/blob/HEAD:/dlls/shell32/shell32.spec

You can manually unpack and run it though.

--- snip ---
$ ./upx -d TreeSizeFree.exe
                       Ultimate Packer for eXecutables
                          Copyright (C) 1996 - 2018
UPX 3.95        Markus Oberhumer, Laszlo Molnar & John Reiser   Aug 26th 2018

        File size         Ratio      Format      Name
   --------------------   ------   -----------   -----------
  30900472 <-   6676728   21.61%    win32/pe     TreeSizeFree.exe

Unpacked 1 file.
--- snip ---

It runs into UI Ribbon Framework insufficiencies afterwards, deserving their
own bug reports.

$ sha1sum TreeSizeFree-Portable.zip 
1c0183fb172471eb92f9d2706811d9229e5caa67  TreeSizeFree-Portable.zip

$ du -sh TreeSizeFree-Portable.zip 
6.9M    TreeSizeFree-Portable.zip

$ wine --version
wine-4.11-192-g90a1e5d943

Regards

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.


More information about the wine-bugs mailing list