[Mono-bugs] [Bug 589940] New: Mono JIT invokes invalid vtable method on MeeGo

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Fri Mar 19 19:10:38 EDT 2010


http://bugzilla.novell.com/show_bug.cgi?id=589940

http://bugzilla.novell.com/show_bug.cgi?id=589940#c0


           Summary: Mono JIT invokes invalid vtable method on MeeGo
    Classification: Mono
           Product: Mono: Runtime
           Version: unspecified
          Platform: x86
        OS/Version: Other
            Status: NEW
          Severity: Critical
          Priority: P5 - None
         Component: JIT
        AssignedTo: lupus at novell.com
        ReportedBy: miguel at novell.com
         QAContact: mono-bugs at lists.ximian.com
          Found By: Development
           Blocker: ---


I built Mono natively on MeeGo to reproduce this.

I compiled the following program on MeeGo and the message "Called" is not
displayed as it should.   Instead the program crashes, since the
CollectionBase.OnValidate is invoked as opposed to the EA.OnValidate method
that prints "Called" and should have ignored the null value.

This is a simpler test case than what is happening in our class libraries when
we call new Uri ("http://localhost") which in turn calls our Regex engine,
which in turn uses the derived CollectionBase.

The executable compiled on MeeGo runs as expected on Linux

using System;
using System.Collections;

class  EA : CollectionBase {
    public void Add (EA e)
    { List.Add (e); }

    protected override void OnValidate (object o) {
        Console.WriteLine ("Called");
    }
}

class Fo {
    static void Main ()
    {
        var a = new EA ();
        a.Add (null);
    }
}

The output of mono --print-vtable is the same for both programs up to the point
that one ends up calling Console, and the other ArgumentException (no
difference found by diff).

If a regular Linux binary is copied over to the MeeGo device, the failure will
also happen.   The opposite is not possible as the MeeGo build seems to be
taking some deps on symbols that do not exist on my SUSE machine (g_malloc0_n; 
go universal binaries on Linux!)

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