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
http://bugs.winehq.org/show_bug.cgi?id=17084
Juan Lang juan_lang@yahoo.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |juan_lang@yahoo.com
--- Comment #1 from Juan Lang juan_lang@yahoo.com 2009-01-22 18:32:55 --- By "sufficiently implemented," you mean with a sufficient stub, or using the patches I sent[1, 2], or an implementation you wrote?
I'd be curious to know whether the patches I sent are sufficient. The main thing blocking these, as far as I can guess, is that including a "large" binary such as I did is a no-no, and I need to write my own tiny little PE file on which ImageGetDigestStream succeeds on Windows.
[1] http://www.winehq.org/pipermail/wine-patches/2008-August/059572.html [2] http://www.winehq.org/pipermail/wine-patches/2008-August/059573.html
http://bugs.winehq.org/show_bug.cgi?id=17084
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |dotnet, download, Installer
http://bugs.winehq.org/show_bug.cgi?id=17084
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |patch
--- Comment #2 from Anastasius Focht focht@gmx.net 2009-01-24 06:15:09 --- Hello,
--- quote --- By "sufficiently implemented," you mean with a sufficient stub, or using the patches I sent[1, 2], or an implementation you wrote? --- quote ---
No simple stub is not enough because .NET runtime actually wants to hash data at this point. I didn't notice that you already sent patches. Your ImageGetDigestStream impl is sufficient enough to let assembly registration part succeed (which is the install blocker here).
Regards
http://bugs.winehq.org/show_bug.cgi?id=17084
Juan Lang juan_lang@yahoo.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Blocks| |16420 Status|UNCONFIRMED |NEW Ever Confirmed|0 |1
--- Comment #3 from Juan Lang juan_lang@yahoo.com 2009-01-24 14:04:27 --- (In reply to comment #2)
Your ImageGetDigestStream impl is sufficient enough to let assembly registration part succeed (which is the install blocker here).
Good. I believe an implementation of this is also required to implement wintrust:CryptSIPCreateIndirectData, bug 16420.
http://bugs.winehq.org/show_bug.cgi?id=17084
nathan.n saturn_systems@yahoo.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |saturn_systems@yahoo.com
http://bugs.winehq.org/show_bug.cgi?id=17084
--- Comment #4 from Nikolay Sivov bunglehead@gmail.com 2009-10-11 14:51:06 --- (In reply to comment #1)
[1] http://www.winehq.org/pipermail/wine-patches/2008-August/059572.html [2] http://www.winehq.org/pipermail/wine-patches/2008-August/059573.html
Hi, Juan.
Don't you mind to resend these or patches were rejected for some still valid reason?
http://bugs.winehq.org/show_bug.cgi?id=17084
--- Comment #5 from Juan Lang juan_lang@yahoo.com 2009-10-11 20:55:53 --- (In reply to comment #4)
Don't you mind to resend these or patches were rejected for some still valid reason?
I don't recall whether I got official commentary, but I can think of a good reason the first patch was rejected: the tested executable was the output of GCC. That was laziness on my part, as I ought to have generated my own tiny executable, perhaps by hand, like dlls/kernel32/tests/loader.c does. I just never got one working, and I haven't had time to work on it lately. Help with good tests would be appreciated ;-)
http://bugs.winehq.org/show_bug.cgi?id=17084
--- Comment #6 from Nikolay Sivov bunglehead@gmail.com 2009-10-11 21:08:26 --- (In reply to comment #5)
(In reply to comment #4)
Don't you mind to resend these or patches were rejected for some still valid reason?
I don't recall whether I got official commentary, but I can think of a good reason the first patch was rejected: the tested executable was the output of GCC.
OMG, didn't look at test..nice table
That was laziness on my part, as I ought to have generated my own tiny executable, perhaps by hand, like dlls/kernel32/tests/loader.c does. I just never got one working, and I haven't had time to work on it lately. Help with good tests would be appreciated ;-)
I know nothing about such low level stuff to be honest, but it's mood problem, you know. So may be.
http://bugs.winehq.org/show_bug.cgi?id=17084
--- Comment #7 from Anastasius Focht focht@gmx.net 2010-07-29 15:03:12 --- Hello,
another try from Andrey Turkin with updated patch set (still not in GIT):
--- snip ---
From: Andrey Turkin andrey.turkin@gmail.com Subject: [1/2] Try2: imagehlp: Add tests for ImageGetDigestStream Message-Id: 201007181438.48191.andrey.turkin@gmail.com Date: Sun, 18 Jul 2010 14:38:48 +0400
http://source.winehq.org/patches/data/63597
From: Andrey Turkin andrey.turkin@gmail.com Subject: [2/2] Try2: imagehlp: Implement ImageGetDigestStream Message-Id: 201007181439.07364.andrey.turkin@gmail.com Date: Sun, 18 Jul 2010 14:39:07 +0400
http://source.winehq.org/patches/data/63598
--- snip ---
Regards
http://bugs.winehq.org/show_bug.cgi?id=17084
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED
--- Comment #8 from Anastasius Focht focht@gmx.net 2010-07-30 13:19:18 --- Hello,
this bug is fixed by commit d9cc69be5b489a49c5edb95f308848df0dd43ba9 and 682f6adcbf27e9fcb1ea439086ec67a732f04536 (tests). ImageGetDigestStream() now works sufficiently to please RegAsm.exe
Sadly the .NET 1.0 installer now breaks due to Wine's default .NET registry keys that ought to "help" Mono. Not really a blocker as no one is going to use .NET 1.0 proactively but it causes more work for me to explain this problem and workarounds in appdb.
Regards
http://bugs.winehq.org/show_bug.cgi?id=17084
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #9 from Alexandre Julliard julliard@winehq.org 2010-08-20 12:38:41 --- Closing bugs fixed in 1.3.1.
http://bugs.winehq.org/show_bug.cgi?id=17084
Nikolay Sivov bunglehead@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Blocks| |23847
http://bugs.winehq.org/show_bug.cgi?id=17084
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |d9cc69be5b489a49c5edb95f308 | |848df0dd43ba9
--- Comment #10 from Anastasius Focht focht@gmx.net 2011-10-12 03:11:21 CDT --- Hello,
filling/correcting fields ...
Regards
http://bugs.winehq.org/show_bug.cgi?id=17084
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Hardware|Other |x86 OS|other |Linux
https://bugs.winehq.org/show_bug.cgi?id=17084
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- URL|http://www.microsoft.com/Do |https://web.archive.org/web |wnLoads/details.aspx?family |/20060212113642/http://down |id=D7158DEE-A83F-4E21-B05A- |load.microsoft.com/download |009D06457787 |/e/b/2/eb247c2a-e6b3-4694-9 | |8a2-b27111d233dd/dotnetredi | |st.exe