[Mono-bugs] [Bug 564843] New: Passing a delegate pointing to null to native causes an abort

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Tue Dec 15 11:09:48 EST 2009



           Summary: Passing a delegate pointing to null to native causes
                    an abort
    Classification: Mono
           Product: Mono: Runtime
           Version: SVN
          Platform: Other
        OS/Version: Other
            Status: NEW
          Severity: Normal
          Priority: P5 - None
         Component: JIT
        AssignedTo: lupus at novell.com
        ReportedBy: amcgovern at novell.com
         QAContact: mono-bugs at lists.ximian.com
          Found By: ---
           Blocker: ---

I found this while working on moonlight. Essentially if you create a delegate
like this and pass it to native, it causes a crash as seen below. A better
error message would be nice:

public delegate void Test (int param);

[DllImport ("FakeLib.dll")]
static extern void TestMethod (Test func);

PassToNative ()
    Test d = null;
    d = new Test (d);
    TestMethod (d);

ERROR:marshal.c:8330:mono_marshal_emit_managed_wrapper: code should not be

Program received signal SIGABRT, Aborted.
0x00007ffff6f1f645 in raise () from /lib64/libc.so.6
(gdb) bt
#0  0x00007ffff6f1f645 in raise () from /lib64/libc.so.6
#1  0x00007ffff6f20c33 in abort () from /lib64/libc.so.6
#2  0x00007ffff2bd4203 in g_assertion_message () from
#3  0x00007fffddbc29dd in mono_marshal_emit_managed_wrapper (mb=0x20da150,
invoke_sig=0x1e9d308, mspecs=0x20da1a0, m=0x7fffffff8970, method=0x210cd98,
this_loc=0x0) at marshal.c:8330
#4  0x00007fffddbc55d9 in mono_marshal_get_managed_wrapper (method=0x210cd98,
delegate_klass=0x1e9bc50, this_loc=0x0) at marshal.c:8562
#5  0x00007fffddbca046 in mono_delegate_to_ftnptr (delegate=0x7fffdbbbb7e0) at
#6  0x000000004001f709 in ?? ()
#7  0x00007fffffff8ad0 in ?? ()
#8  0x00000000019693c0 in ?? ()
#9  0x0000000000000000 in ?? ()

Configure bugmail: http://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