[Mono-bugs] [Bug 498545] New: Error in decoding custom attributes on synthetic methods

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Mon Apr 27 13:54:58 EDT 2009


           Summary: Error in decoding custom attributes on synthetic
    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: spouliot at novell.com
         QAContact: mono-bugs at lists.ximian.com
                CC: rkumpera at novell.com
          Found By: ---

Short story:

Mono returns one custom attribute [SecurityCritical] for method
since this type is not a "real" method (or type) it should not have any
attribute (at least not a [SecurityCritical] one ;-).

This leads "mono_security_core_clr_level_from_cinfo" (security-core-clr.c) to
return MONO_SECURITY_CORE_CLR_CRITICAL and throw a MethodAccessException on
valid code (e.g. http://robozzle.com/)

Long story (IRC log):

<spouliot> kumpera: hey, any clue how a [SecurityCritical] attributes can
exists on a runtime generated type, like FrameworkElement[,] ?
<kumpera> spouliot: AFAIK, they can't
<kumpera> but
<kumpera> FrameworkElement[,] extends System.Array
<kumpera> and have some synthetic methods like .ctor, Set() and Get()
<kumpera> and implement a bunch of interfaces
<kumpera> err, multidym arrays don't have synthetic interfaces, only unidym
<spouliot> I get this on the .ctor
<kumpera> on mono or on SL?
<spouliot> but there's no [SC] on System.Array
<spouliot> mono
<kumpera> .ctor is synthetic
<kumpera> IOW, there is no C# source for it
<kumpera> neither source of IL
<spouliot> yep, but are we adding any [SC] anywher ?
<spouliot> because it's added or copied/cloned
<kumpera> no idea, really
<kumpera> how do you know you're getting [SC]?
<kumpera> err, from where?
<spouliot> gdb
<kumpera> and how do you check it?
<spouliot> p *cinfo->attrs->ctor->klass
<kumpera> and this cinfo comes from the method of an array
<spouliot> from System.Windows.FrameworkElement[,]::.ctor
<kumpera> spouliot, does this method comes from a dynamic image?
<kumpera> hmm, I guess not
<kumpera> spouliot: what *cinfo->num_attrs print?
<kumpera> spouliot: lol, it's a bug on the reflection code
<kumpera> spouliot: mono screws up when decoding cattr of synthetic array
<spouliot> kumpera: back - glad it's a bug, even if it's weird that it turned
out to be a [SC] :)
<kumpera> I believe it will decode to some random token
<spouliot> heh, really weird to hit that particular spot

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