[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.