[Mono-list] Bug in Mono.PEToolkit

Paulo Jorge F. Sacramento sacra@student.dei.uc.pt
Thu, 6 May 2004 14:18:22 +0100 (WEST)


I've found a bug in Mono.PEToolkit and would really like to report it
somewhere. The problem is I can't find any suitable place to do it.
There's no Mono.PEToolkit component under Class Libraries in Bugzilla, so
I really don't know where to post my bug report.

The bug seems important to me as it happens in a lot of different
circumstances. It's currently preventing all my work from advancing, also

I'll post it here in a short version, just so if anyone related to it
maybe can take care of it:

It only takes three instructions to reproduce it. Basically, I'm trying
to inspect some of .Net's core libraries with Mono:

using Mono.PEToolkit;
using Mono.PEToolkit.MetaData;


Image img = new

img.ReadHeaders(); //This line crashes with a BadMetaDataException

Here's the stack trace:

Unhandled Exception: Mono.PEToolkit.Metadata.BadMetaDataException: Invalid
 token for HasCustomAttribute, unknown table tag - 24
   at Mono.PEToolkit.Metadata.TabsDecoder.DecodeToken(CodedTokenId id,
Int32 dat
   at Mono.PEToolkit.Metadata.CustomAttributeRow.FromRawData(Byte[] buff,
   at Mono.PEToolkit.Metadata.CustomAttributeTable.FromRawData(Byte[]
buff, Int3
2 offs, Int32 numRows)
   at Mono.PEToolkit.Metadata.TabsDecoder.DecodePhysicalTables(TablesHeap
Byte[] data, Int32 offs, Int32[] rows)
   at Mono.PEToolkit.Metadata.TablesHeap.FromRawData(Byte[] rawData)
   at Mono.PEToolkit.Metadata.MDHeap..ctor(MDStream stream)
   at Mono.PEToolkit.Metadata.TablesHeapBase..ctor(MDStream stream)
   at Mono.PEToolkit.Metadata.TablesHeap..ctor(MDStream stream)
   at Mono.PEToolkit.Metadata.MDHeap.Create(MDStream stream)
   at Mono.PEToolkit.Metadata.MDStream.InitHeap()
   at Mono.PEToolkit.Metadata.MDStream.get_Heap()
   at Mono.PEToolkit.Metadata.MetaDataRoot.Read(BinaryReader reader)
   at Mono.PEToolkit.Image.ReadHeaders()
   at PT.UC.DEI.DSG.Injector.Analyser.Main(String[] args) in
\analyser\analyser.cs:line 187

It's important to note that this happens in a lot of other assemblies
(I've tested it with at least 5), giving different reasons for the
BadMetaDataException and different table tags.

Thanks for your attention,

Paulo Sacramento

"Nobody realizes that some people expend tremendous energy merely to be

Albert Camus