http://bugs.winehq.org/show_bug.cgi?id=35230
Bug ID: 35230 Summary: Macromedia Freehand 9 demo: invalid path for file association default icon causes stack overflow in winemenubuilder Product: Wine Version: 1.7.9 Hardware: x86 OS: Linux Status: NEW Severity: normal Priority: P2 Component: programs Assignee: wine-bugs@winehq.org Reporter: focht@gmx.net Classification: Unclassified
Hello folks,
split off from bug 35229
The 'Unhandled stack overflow' terminal message has nothing to do with the actual 'hang' of application.
It seems an invalid path for '.mch' (MacromediaXtraCacheFile) file association default icon causes a recursion in winemenubuilder.
--- snip --- ... 000b:Call KERNEL32.CreateProcessW(00000000,00116740 L"C:\windows\system32\winemenubuilder.exe -a -r",00000000,00000000,00000000,00000000,00000000,00000000,0033f988,0033f978) ret=7edb7f74 ... 000d:Call KERNEL32.__wine_kernel_init() ret=7bc5a036 000b:Ret KERNEL32.CreateProcessW() retval=00000001 ret=7edb7f74 ... 000d:trace:menubuilder:extract_icon path=[L"C:\Program Files\Common Files\Macromedia\Xtras\Xtraicon.x32"] index=1 destFilename=["application-x-wine-extension-mch"] 000d:Call KERNEL32.LoadLibraryExW(00135c80 L"C:\Program Files\Common Files\Macromedia\Xtras\Xtraicon.x32",00000000,00000002) ret=7edb6790 000d:Ret KERNEL32.LoadLibraryExW() retval=00000000 ret=7edb6790 000d:warn:menubuilder:open_module_icon LoadLibraryExW (L"C:\Program Files\Common Files\Macromedia\Xtras\Xtraicon.x32") failed, error 126 000d:Call shlwapi.AssocQueryStringW(00000000,0000000f,00135cee L".x32",00000000,00000000,0033f9fc) ret=7edb995c 000d:Call shell32.SHCoCreateInstance(00000000,0033f920,00000000,7e65443c,0033f950) ret=7e618ec1 ... 000d:Ret shlwapi.AssocQueryStringW() retval=00000000 ret=7edb99d0 000d:Call KERNEL32.LoadLibraryExW(0015bd28 L"C:\Program Files\Common Files\Macromedia\Xtras\Xtraicon.x32",00000000,00000002) ret=7edb6790 000d:Ret KERNEL32.LoadLibraryExW() retval=00000000 ret=7edb6790 000d:warn:menubuilder:open_module_icon LoadLibraryExW (L"C:\Program Files\Common Files\Macromedia\Xtras\Xtraicon.x32") failed, error 126 000d:Call shlwapi.AssocQueryStringW(00000000,0000000f,0015bd96 L".x32",00000000,00000000,0033f96c) ret=7edb995c ... 000d:Ret shlwapi.AssocQueryStringW() retval=00000000 ret=7edb99d0 000d:Call KERNEL32.LoadLibraryExW(0015be38 L"C:\Program Files\Common Files\Macromedia\Xtras\Xtraicon.x32",00000000,00000002) ret=7edb6790 000d:Ret KERNEL32.LoadLibraryExW() retval=00000000 ret=7edb6790 000d:warn:menubuilder:open_module_icon LoadLibraryExW (L"C:\Program Files\Common Files\Macromedia\Xtras\Xtraicon.x32") failed, error 126 000d:Call shlwapi.AssocQueryStringW(00000000,0000000f,0015bea6 L".x32",00000000,00000000,0033f8dc) ret=7edb995c 000d:Call shell32.SHCoCreateInstance(00000000,0033f800,00000000,7e65443c,0033f830) ret=7e618ec1 ... <recursion, eating up stack> 000d:Call KERNEL32.LoadLibraryExW(0036abe8 L"C:\Program Files\Common Files\Macromedia\Xtras\Xtraicon.x32",00000000,00000002) ret=7edb6790 000d:trace:seh:raise_exception code=c00000fd flags=0 addr=0xf741794a ip=f741794a tid=000d 000d:trace:seh:raise_exception eax=f755c420 ebx=f755c000 ecx=00000001 edx=00000066 esi=f755c420 edi=7d03c3cd 000d:trace:seh:raise_exception ebp=f7773588 esp=00241fe0 cs=0023 ds=002b es=002b fs=0063 gs=006b flags=00010202 000d:trace:seh:call_stack_handlers calling handler at 0x7bc9e187 code=c00000fd flags=0 000d:Call KERNEL32.UnhandledExceptionFilter(00241ab4) ret=7bc9e1c1 wine: Unhandled stack overflow at address 0xf741794a (thread 000d), starting debugger... 000d:err:seh:setup_exception_record stack overflow 816 bytes in thread 000d eip f741303d esp 00241000 stack 0x240000-0x241000-0x340000 --- snip ---
The invalid path might be some app/installer (not Wine) bug and winemenubuilder should cope with this.
You can work around by resetting default values for affected assocs:
--- snip --- $ wine reg add "HKCR\MacromediaXtra32\DefaultIcon" /t REG_SZ /d "" /f $ wine reg add "HKCR\MacromediaXtraCacheFile\DefaultIcon" /t REG_SZ /d "" /f --- snip ---
Source: http://source.winehq.org/git/wine.git/blob/a0b8d304b76c61b7edd539a84db509f08...
(wait is false, HRESULT_FROM_WIN32(ERROR_MOD_NOT_FOUND))
--- snip --- 1051 static HRESULT open_icon(LPCWSTR filename, int index, BOOL bWait, IStream **ppStream) 1052 { 1053 HRESULT hr; 1054 1055 hr = open_module_icon(filename, index, ppStream); 1056 if (FAILED(hr)) 1057 { ... 1071 } 1072 if (FAILED(hr)) 1073 hr = open_file_type_icon(filename, ppStream); 1074 if (FAILED(hr) && !bWait) 1075 hr = open_default_icon(ppStream); 1076 return hr; 1077 } --- snip ---
open_icon -> open_file_type_icon -> open_icon ... you get the idea ;-)
$ sha1sum freehand9-trial.exe a502e0d2e4590e118ea0215e947f16913a57b938 freehand9-trial.exe
$ du -sh freehand9-trial.exe 14M freehand9-trial.exe
$ wine --version wine-1.7.9-158-g33fa552
Regards