From 4263fc298ea1e55cd3ad84488fb128d3c11baa79 Mon Sep 17 00:00:00 2001 From: Siegfried Pammer Date: Fri, 30 Mar 2018 18:55:44 +0200 Subject: [PATCH] Fix bug in MetadataLoader --- ICSharpCode.Decompiler/TypeSystem/MetadataLoader.cs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/ICSharpCode.Decompiler/TypeSystem/MetadataLoader.cs b/ICSharpCode.Decompiler/TypeSystem/MetadataLoader.cs index 6f93e2f64..c77a444d5 100644 --- a/ICSharpCode.Decompiler/TypeSystem/MetadataLoader.cs +++ b/ICSharpCode.Decompiler/TypeSystem/MetadataLoader.cs @@ -650,9 +650,11 @@ namespace ICSharpCode.Decompiler.TypeSystem attr.AddNamedFieldArgument("ArraySubType", CreateSimpleConstantValue(unmanagedTypeTypeRef, type)); break; case 0x1d: // SafeArray - VarEnum varType = (VarEnum)marshalInfo.ReadByte(); - if (varType != VarEnum.VT_EMPTY) - attr.AddNamedFieldArgument("SafeArraySubType", CreateSimpleConstantValue(typeof(VarEnum).ToTypeReference(), (int)varType)); + if (marshalInfo.RemainingBytes > 0) { + VarEnum varType = (VarEnum)marshalInfo.ReadByte(); + if (varType != VarEnum.VT_EMPTY) + attr.AddNamedFieldArgument("SafeArraySubType", CreateSimpleConstantValue(typeof(VarEnum).ToTypeReference(), (int)varType)); + } break; case 0x2a: // NATIVE_TYPE_ARRAY if (marshalInfo.RemainingBytes > 0) {