[Mono-bugs] [Bug 651287] New: [verifier] SIGSEGV in mono_class_is_assignable_from

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Thu Nov 4 08:29:28 EDT 2010



           Summary: [verifier] SIGSEGV in mono_class_is_assignable_from
    Classification: Mono
           Product: Mono: Runtime
           Version: SVN
          Platform: x86
        OS/Version: openSUSE 11.3
            Status: NEW
          Severity: Major
          Priority: P5 - None
         Component: verifier
        AssignedTo: rkumpera at novell.com
        ReportedBy: spouliot at novell.com
         QAContact: mono-bugs at lists.ximian.com
          Found By: ---
           Blocker: ---

Created an attachment (id=398580)
 --> (http://bugzilla.novell.com/attachment.cgi?id=398580)
assembly to reproduce the crash

A sigsegv occurs inside the mono_class_has_parent when both arguments are the
same. In this case idepth is identical and when it's zero (test case attached)
then a sigsegv occurs when accessing the supertypes array.

#define mono_class_has_parent(klass,parent) (((klass)->idepth >=
(parent)->idepth) && ((klass)->supertypes [(parent)->idepth - 1] == (parent)))

gdb --args pedump --verify all bin/System.Xml.sigsegv.5995.dll

Program received signal SIGSEGV, Segmentation fault.
0x08067b64 in mono_class_is_assignable_from (klass=0x82a0ec4, oklass=0x82a0ec4)
at class.c:7291
7291        return mono_class_has_parent (oklass, klass);
(gdb) bt
#0  0x08067b64 in mono_class_is_assignable_from (klass=0x82a0ec4,
oklass=0x82a0ec4) at class.c:7291
#1  0x08108fc1 in verify_type_compatibility_full (ctx=0xbfffeb4c,
target=0x82a0f44, candidate=0x82a0f44, strict=0) at verify.c:2111
#2  0x08109671 in verify_stack_type_compatibility_full (ctx=0xbfffeb4c,
type=0x82a0f44, stack=0x829faf0, drop_byref=0, valuetype_must_be_boxed=0)
    at verify.c:2290
#3  0x081096a6 in verify_stack_type_compatibility (ctx=0xbfffeb4c,
type=0x82a0f44, stack=0x829faf0) at verify.c:2296
#4  0x0810bcaa in do_ret (ctx=0xbfffeb4c) at verify.c:2874
#5  0x08116ae1 in mono_method_verify (method=0x82a4e6c, level=135) at
#6  0x080508a2 in dump_verify_info (image=0x8293180, flags=135) at pedump.c:369
#7  0x0805167c in main (argc=4, argv=0xbffff054) at pedump.c:735
(gdb) p oklass
$1 = (MonoClass *) 0x82a0ec4
(gdb) p klass
$2 = (MonoClass *) 0x82a0ec4
(gdb) p klass->idepth
$3 = 0
(gdb) p klass->supertypes
$4 = (MonoClass **) 0x0
(gdb) p klass->name
$5 = 0xb7b4c0a0 "ReadState"
(gdb) p klass->name_space
$6 = 0xb7b4b3f5 "System.Xml"

Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.

More information about the mono-bugs mailing list