[Bug 16999] New: Visual C++ 2005 Express IDE: stack overflow at startup due to empty class id string
http://bugs.winehq.org/show_bug.cgi?id=16999 Summary: Visual C++ 2005 Express IDE: stack overflow at startup due to empty class id string Product: Wine Version: 1.1.13 Platform: Other URL: http://www.microsoft.com/express/2005/download/default.a spx OS/Version: other Status: UNCONFIRMED Severity: normal Priority: P2 Component: ole32 AssignedTo: wine-bugs(a)winehq.org ReportedBy: focht(a)gmx.net Hello, prerequisites: Patch from bug 5054 to work around invalid URL cache entries (http://bugs.winehq.org/attachment.cgi?id=18726) 1. clean WINEPREFIX 2. sh winetricks -q dotnet20 msxml6 3. download and run web installer (see URL) 4. start the VC++ 2005 IDE (wine VCExpress.exe) --- The IDE crashes due to stack overflow. --- snip --- ... 0038:Call advapi32.RegQueryValueExW(00000418,50061238 L"MRUCommand2GUID",00000000,003289e8,003289ec,003289e0) ret=50008e41 0038:Ret advapi32.RegQueryValueExW() retval=00000000 ret=50008e41 0038:Call advapi32.RegQueryValueExW(00000418,502800c8 L"MRUCommand2ID",00000000,00000000,00328c38,00328c34) ret=501f1800 0038:Ret advapi32.RegQueryValueExW() retval=00000000 ret=501f1800 0038:Call ole32.CLSIDFromString(00328c40 L"{5EFC7975-14BC-11CF-9B2B-00AA00573819}",50758004) ret=501f181a 0038:trace:ole:__CLSIDFromString L"{5EFC7975-14BC-11CF-9B2B-00AA00573819}" -> 0x50758004 0038:Ret ole32.CLSIDFromString() retval=00000000 ret=501f181a 0038:CALL MSVCR80.memset(003289f0,00000000,00000204) ret=50008e1d 0038:RET MSVCR80.memset() retval=003289f0 ret=50008e1d 0038:Call advapi32.RegQueryValueExW(00000418,50061258 L"MRUCommand3GUID",00000000,003289e8,003289ec,003289e0) ret=50008e41 0038:Ret advapi32.RegQueryValueExW() retval=00000000 ret=50008e41 0038:Call advapi32.RegQueryValueExW(00000418,502800e4 L"MRUCommand3ID",00000000,00000000,00328c38,00328c34) ret=501f1847 0038:Ret advapi32.RegQueryValueExW() retval=00000000 ret=501f1847 0038:Call ole32.CLSIDFromString(00328c40 L"",50758018) ret=501f1861 0038:Call KERNEL32.GetProcessHeap() ret=604e16fd 0038:Ret KERNEL32.GetProcessHeap() retval=00110000 ret=604e16fd 0038:Call ntdll.RtlAllocateHeap(00110000,00000000,00000010) ret=604e1711 0038:Ret ntdll.RtlAllocateHeap() retval=00ed1298 ret=604e1711 0038:Call advapi32.RegOpenKeyW(80000000,00ed1298 L"\\CLSID",00328acc) ret=604e1758 0038:Ret advapi32.RegOpenKeyW() retval=00000000 ret=604e1758 ... 0038:Call advapi32.RegOpenKeyW(80000000,00ed1298 L"\\CLSID",0023294c) ret=604e1758 0038:Ret advapi32.RegOpenKeyW() retval=00000000 ret=604e1758 0038:Call KERNEL32.GetProcessHeap() ret=604e17f0 0038:Ret KERNEL32.GetProcessHeap() retval=00110000 ret=604e17f0 0038:Call ntdll.RtlFreeHeap(00110000,00000000,00ed1298) ret=604e1809 0038:Ret ntdll.RtlFreeHeap() retval=00000001 ret=604e1809 0038:Call advapi32.RegQueryValueW(0000043c,00000000,00232956,00232950) ret=604e182d 0038:Ret advapi32.RegQueryValueW() retval=00000000 ret=604e182d 0038:Call advapi32.RegCloseKey(0000043c) ret=604e18b1 0038:Ret advapi32.RegCloseKey() retval=00000000 ret=604e18b1 0038:trace:seh:raise_exception code=c00000fd flags=0 addr=0x601e289e ip=0x601e289e tid=0038 0038:trace:seh:raise_exception eax=00000000 ebx=602e4ff4 ecx=00232720 edx=00000000 esi=00000000 edi=0023268c 0038:trace:seh:raise_exception ebp=00232038 esp=00231ffc cs=0023 ds=002b es=002b fs=0063 gs=006b flags=00010206 0038:trace:seh:call_stack_handlers calling handler at 0x506ea492 code=c00000fd flags=0 0038:err:seh:setup_exception_record stack overflow 976 bytes in thread 0038 eip 601b4678 esp 00230f60 stack 0x230000-0x231000-0x330000 --- snip --- Relevant registry data: --- snip --- [HKEY_USERS\S-1-5-4\Software\Microsoft\VCExpress\8.0\StartPage] "Command1"="{F3192B90-EA73-480F-9471-04524118D767}|20487|" "Command2"="{F3192B90-EA73-480F-9471-04524118D767}|20482|" "Command3"="{F3192B90-EA73-480F-9471-04524118D767}|20480|" "Command4"="{F3192B90-EA73-480F-9471-04524118D767}|20481|" "Command5"="{F3192B90-EA73-480F-9471-04524118D767}|20483|" "Command6"="{F3192B90-EA73-480F-9471-04524118D767}|20485|" "DownloadState"=dword:00000000 "MRUCommand1GUID"="{5EFC7975-14BC-11CF-9B2B-00AA00573819}" "MRUCommand1ID"=dword:000000d8 "MRUCommand2GUID"="{5EFC7975-14BC-11CF-9B2B-00AA00573819}" "MRUCommand2ID"=dword:00000141 "MRUCommand3GUID"="" "MRUCommand3ID"=dword:00000000 "MRUCommand4GUID"="" "MRUCommand4ID"=dword:00000000 --- snip --- The problem is actually a bug in CLSIDFromProgID() when passed an empty id string which results in nice recursion :-) --- snip dlls/ole32/compobj.c --- HRESULT WINAPI CLSIDFromString(LPOLESTR idstr, CLSID *id ) { HRESULT ret; if (!id) return E_INVALIDARG; ret = __CLSIDFromString(idstr, id); if(ret != S_OK) { /* It appears a ProgID is also valid */ ret = CLSIDFromProgID(idstr, id); } return ret; } ... HRESULT WINAPI CLSIDFromProgID(LPCOLESTR progid, LPCLSID clsid) { static const WCHAR clsidW[] = { '\\','C','L','S','I','D',0 }; WCHAR buf2[CHARS_IN_GUID]; LONG buf2len = sizeof(buf2); HKEY xhkey; WCHAR *buf; if (!progid || !clsid) { ERR("neither progid (%p) nor clsid (%p) are optional\n", progid, clsid); return E_INVALIDARG; } /* initialise clsid in case of failure */ memset(clsid, 0, sizeof(*clsid)); buf = HeapAlloc( GetProcessHeap(),0,(strlenW(progid)+8) * sizeof(WCHAR) ); strcpyW( buf, progid ); strcatW( buf, clsidW ); if (RegOpenKeyW(HKEY_CLASSES_ROOT,buf,&xhkey)) { HeapFree(GetProcessHeap(),0,buf); WARN("couldn't open key for ProgID %s\n", debugstr_w(progid)); return CO_E_CLASSSTRING; } HeapFree(GetProcessHeap(),0,buf); if (RegQueryValueW(xhkey,NULL,buf2,&buf2len)) { RegCloseKey(xhkey); WARN("couldn't query clsid value for ProgID %s\n", debugstr_w(progid)); return CO_E_CLASSSTRING; } RegCloseKey(xhkey); return CLSIDFromString(buf2,clsid); } --- snip dlls/ole32/compobj.c --- CLSIDFromProgID() needs to be fixed for the empty cls/prog id string case. With proper patch applied, the IDE starts. Regards -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email 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.
http://bugs.winehq.org/show_bug.cgi?id=16999 Anastasius Focht <focht(a)gmx.net> changed: What |Removed |Added ---------------------------------------------------------------------------- Depends on| |5054 -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email 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.
http://bugs.winehq.org/show_bug.cgi?id=16999 Austin English <austinenglish(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email 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.
http://bugs.winehq.org/show_bug.cgi?id=16999 Andrey Turkin <andrey.turkin(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |andrey.turkin(a)gmail.com --- Comment #1 from Andrey Turkin <andrey.turkin(a)gmail.com> 2009-01-20 08:46:03 --- should be fixed in git -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email 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.
http://bugs.winehq.org/show_bug.cgi?id=16999 Anastasius Focht <focht(a)gmx.net> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |FIXED --- Comment #2 from Anastasius Focht <focht(a)gmx.net> 2009-01-20 13:42:59 --- Hello, fixed by commit 644220b518dfb574c1f5dee22065d88b9603e7c7 Regards -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email 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.
http://bugs.winehq.org/show_bug.cgi?id=16999 Bug 16999 depends on bug 5054, which changed state. Bug 5054 Summary: can not install microsoft visual C++ express 2005 http://bugs.winehq.org/show_bug.cgi?id=5054 What |Old Value |New Value ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email 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.
http://bugs.winehq.org/show_bug.cgi?id=16999 Alexandre Julliard <julliard(a)winehq.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED --- Comment #3 from Alexandre Julliard <julliard(a)winehq.org> 2009-01-30 11:05:03 --- Closing bugs fixed in 1.1.14. -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email 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.
http://bugs.winehq.org/show_bug.cgi?id=16999 Anastasius Focht <focht(a)gmx.net> changed: What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |644220b518dfb574c1f5dee2206 | |5d88b9603e7c7 --- Comment #4 from Anastasius Focht <focht(a)gmx.net> 2011-10-12 03:11:55 CDT --- Hello, filling/correcting fields ... Regards -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email 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.
http://bugs.winehq.org/show_bug.cgi?id=16999 Anastasius Focht <focht(a)gmx.net> changed: What |Removed |Added ---------------------------------------------------------------------------- Hardware|Other |x86 OS|other |Linux -- 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.
https://bugs.winehq.org/show_bug.cgi?id=16999 Anastasius Focht <focht(a)gmx.net> changed: What |Removed |Added ---------------------------------------------------------------------------- URL|http://www.microsoft.com/ex |https://web.archive.org/web |press/2005/download/default |/20110608232332/https://dow |.aspx |nload.microsoft.com/downloa | |d/A/9/1/A91D6B2B-A798-47DF- | |9C7E-A97854B7DD18/VC.iso --- Comment #5 from Anastasius Focht <focht(a)gmx.net> --- Hello folks, adding stable download link via Internet Archive for documentation. MS Visual C++ Express 2005 (offline) https://web.archive.org/web/20110608232332/https://download.microsoft.com/do... $ sha1sum VC.iso 1ae44e4eaf8c61c3a39e573fd6efd9889e940529 VC.iso $ du -sh VC.iso 463M VC.iso 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.
participants (2)
-
wine-bugs@winehq.org -
WineHQ Bugzilla