http://bugs.winehq.org/show_bug.cgi?id=17084
Summary: .NET 1.0: imagehlp.ImageGetDigestStream needs more flesh (assembly registration fails) Product: Wine Version: 1.1.13 Platform: Other URL: http://www.microsoft.com/DownLoads/details.aspx?familyid =D7158DEE-A83F-4E21-B05A-009D06457787 OS/Version: other Status: UNCONFIRMED Severity: normal Priority: P2 Component: imagehlp AssignedTo: wine-bugs@winehq.org ReportedBy: focht@gmx.net
Hello,
a bit of nostalgia ... I happen to test .NET 1.0 Framework and promptly found a bug in post install step.
--- snip --- ... Microsoft (R) .NET Framework Assembly Registration Utility 1.0.3705.0 Copyright (C) Microsoft Corporation 1998-2001. All rights reserved.
err:ole:CoGetClassObject class {00000349-0000-0000-c000-000000000046} not registered err:ole:CoGetClassObject class {00000349-0000-0000-c000-000000000046} not registered err:ole:create_server class {00000349-0000-0000-c000-000000000046} not registered fixme:ole:CoGetClassObject CLSCTX_REMOTE_SERVER not supported err:ole:CoGetClassObject no class object {00000349-0000-0000-c000-000000000046} could be created for context 0x17 fixme:imagehlp:ImageGetDigestStream (0x148, 4, 0x79310a0c, 0x33f704): stub RegAsm error: Index was outside the bounds of the array. fixme:ole:CoGetContextToken stub err:msi:ITERATE_Actions Execution halted, action L"InstallFinalize" returned 1603 err:msi:ITERATE_Actions Execution halted, action L"ExecuteAction" returned 1603 --- snip ---
Trace log:
--- snip --- 0009:Call KERNEL32.CreateFileW(00153d48 L"C:\windows\Microsoft.NET\Framework\v1.0.3705\RegAsm.exe",80000000,00000001,00000000,00000003,00000000,00000000) ret=791b81ab 0009:Ret KERNEL32.CreateFileW() retval=00000150 ret=791b81ab 0009:Call KERNEL32.GetModuleHandleW(7923122c L"mscorwks.dll") ret=7923115e 0009:Ret KERNEL32.GetModuleHandleW() retval=791b0000 ret=7923115e 0009:Call KERNEL32.GetModuleFileNameW(791b0000,0032f4bc,00000104) ret=792311a3 0009:Ret KERNEL32.GetModuleFileNameW() retval=00000039 ret=792311a3 0009:CALL MSVCR70.wcsrchr() ret=792311b6 0009:RET MSVCR70.wcsrchr() retval=0032f514 ret=792311b6 0009:CALL MSVCR70.wcscpy() ret=792311ce 0009:RET MSVCR70.wcscpy() retval=0032f516 ret=792311ce 0009:Call KERNEL32.LoadLibraryExW(0032f4bc L"C:\windows\Microsoft.NET\Framework\v1.0.3705\imagehlp.dll",00000000,00000000) ret=791bde71 0009:Call PE DLL (proc=0x60df3458,module=0x60de0000 L"imagehlp.dll",reason=PROCESS_ATTACH,res=(nil)) 0009:Call KERNEL32.DisableThreadLibraryCalls(60de0000) ret=60df1cdb 0009:Ret KERNEL32.DisableThreadLibraryCalls() retval=00000001 ret=60df1cdb 0009:Call KERNEL32.HeapCreate(00000000,00010000,00000000) ret=60df1cfa 0009:Ret KERNEL32.HeapCreate() retval=02d50000 ret=60df1cfa 0009:Ret PE DLL (proc=0x60df3458,module=0x60de0000 L"imagehlp.dll",reason=PROCESS_ATTACH,res=(nil)) retval=1 0009:Ret KERNEL32.LoadLibraryExW() retval=60de0000 ret=791bde71 0009:Call KERNEL32.GetProcAddress(60de0000,79310bdc "ImageGetDigestStream") ret=79310b16 0009:Ret KERNEL32.GetProcAddress() retval=60df10d8 ret=79310b16 0009:Call imagehlp.ImageGetDigestStream(00000150,00000004,79310a0c,0032f704) ret=79310b2e 0009:fixme:imagehlp:ImageGetDigestStream (0x150, 4, 0x79310a0c, 0x32f704): stub 0009:Call KERNEL32.SetLastError(00000078) ret=60df28d1 0009:Ret KERNEL32.SetLastError() retval=00000078 ret=60df28d1 0009:Ret imagehlp.ImageGetDigestStream() retval=00000000 ret=79310b2e 0009:Call KERNEL32.CloseHandle(00000150) ret=79310bc4 0009:Ret KERNEL32.CloseHandle() retval=00000001 ret=79310bc4 0009:Call KERNEL32.FreeLibrary(60de0000) ret=79310bd2 0009:Call PE DLL (proc=0x60df3458,module=0x60de0000 L"imagehlp.dll",reason=PROCESS_DETACH,res=(nil)) 0009:Call KERNEL32.HeapDestroy(02d50000) ret=60df1d19 0009:Ret KERNEL32.HeapDestroy() retval=00000001 ret=60df1d19 0009:Ret PE DLL (proc=0x60df3458,module=0x60de0000 L"imagehlp.dll",reason=PROCESS_DETACH,res=(nil)) retval=1 0009:Ret KERNEL32.FreeLibrary() retval=00000001 ret=79310bd2 ... 0009:Call KERNEL32.RaiseException(e0434f4d,00000001,00000000,00000000) ret=7921e860 0009:trace:seh:raise_exception code=e0434f4d flags=1 addr=0x7b844f7c ip=0x7b844fff tid=0009 0009:trace:seh:raise_exception eax=7b82cca9 ebx=7b8c3940 ecx=00000000 edx=00000010 esi=0032f430 edi=0032f3b0 0009:trace:seh:raise_exception ebp=0032f398 esp=0032f334 cs=0023 ds=002b es=002b fs=0063 gs=006b flags=00000246 0009:trace:seh:call_stack_handlers calling handler at 0x7921e874 code=e0434f4d flags=1 --- snip ---
With ImageGetDigestStream() sufficiently implemented, assembly registration succeeds and installer completes (tested).
Be aware there is some sporadic heap corruption happening not yet tracked down (also in .NET 1.1 installer) which might sometimes fail the installer -> run installer again.
Regards