[Mono-bugs] [Bug 54813][Cri] Changed - mcs 0.31 crashes mono in metadata.c
bugzilla-daemon@bugzilla.ximian.com
bugzilla-daemon@bugzilla.ximian.com
Thu, 15 Apr 2004 05:57:34 -0400 (EDT)
Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.
Changed by vladimir@pobox.com.
http://bugzilla.ximian.com/show_bug.cgi?id=54813
--- shadow/54813 2004-04-14 17:31:38.000000000 -0400
+++ shadow/54813.tmp.23681 2004-04-15 05:57:34.000000000 -0400
@@ -582,6 +582,40 @@
This is a work blocking, compiler crash bug gentlemen, one that has
slipped through the past several releases even though your team was
made aware of it by me.
Dilton
+
+------- Additional Comments From vladimir@pobox.com 2004-04-15 05:57 -------
+(Randomly came across this bug and figured I'd try to duplicate.)
+
+The crash occurs only with the included Utils.dll (note:
+Microsoft.Web.Services.dll is the mono stub impl, dll #2)
+
+vladimir@thunder[1061]% mcs Client.cs -r:System.Data.dll
+-r:System.Web.Services.dll -r:System.Management.dll -r:Utils/Utils.dll
+-r:Microsoft.Web.Services.dll
+
+** ERROR **: file metadata.c: line 870 (mono_metadata_decode_row):
+assertion failed: (res_size == count)
+aborting...
+/usr/local/bin/mcs: line 2: 2409 Aborted
+/usr/local/bin/mono /usr/local/bin/mcs.exe "$@"
+
+Rebuilding Utils.dll makes the problem go away. On the original
+Utils.dll, peverify reports:
+
+vladimir@tornado[5]% peverify Utils.dll
+Microsoft (R) .NET Framework PE Verifier Version 1.1.4322.573
+Copyright (C) Microsoft Corporation 1998-2002. All rights reserved.
+
+[IL]: Error: The module '' was expected to contain an assembly manifest.
+1 Errors Verifying Utils.dll
+
+A rebuilt Utils.dll verifies with no problems. Run peverify on a
+Utils.dll that you build. If it has the above problem, then something
+is wrong with your mono install -- mcs CVS as of about a week ago does
+not have the problem; I don't have 0.31 installed anywhere to test.
+So, the bug here is really that mono should give a better error
+message when it tries to load a corrupt assembly.. specifically, in
+this case, one with MONO_TABLE_ASSEMBLY table in the image set to 0's.