From 9b8587113080afd8e1800af0932f99ded0328c47 Mon Sep 17 00:00:00 2001 From: Aristarkh Zagorodnikov Date: Sun, 10 Feb 2019 23:48:48 +0300 Subject: [PATCH] Fix for IndexOutOfRangeException in ILReader.ReadOpCode(), part 2 (#84) * Add failing test * Fix OperandType.ShortInlineI handling * Remove invalid comment --- src/Ben.Demystifier/Internal/ILReader.cs | 2 +- test/Ben.Demystifier.Test/ILReaderTests.cs | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Ben.Demystifier/Internal/ILReader.cs b/src/Ben.Demystifier/Internal/ILReader.cs index 758710f..af442a4 100644 --- a/src/Ben.Demystifier/Internal/ILReader.cs +++ b/src/Ben.Demystifier/Internal/ILReader.cs @@ -72,6 +72,7 @@ namespace System.Diagnostics.Internal case OperandType.ShortInlineBrTarget: case OperandType.ShortInlineVar: + case OperandType.ShortInlineI: inlineLength = 1; break; @@ -97,7 +98,6 @@ namespace System.Diagnostics.Internal break; default: - // Can return System.ArgumentException : Unexpected operand type xxx return null; } diff --git a/test/Ben.Demystifier.Test/ILReaderTests.cs b/test/Ben.Demystifier.Test/ILReaderTests.cs index c978814..f426b39 100644 --- a/test/Ben.Demystifier.Test/ILReaderTests.cs +++ b/test/Ben.Demystifier.Test/ILReaderTests.cs @@ -34,6 +34,10 @@ namespace Ben.Demystifier.Test 40, 160, 4, 0, 6, 114, 253, 15, 0, 112, 115, 90, 0, 0, 10, 122, 254, 6, 32, 5, 0, 6, 115, 137, 2, 0, 10, 115, 61, 2, 0, 6, 42 } }, + + { new byte[] { + 31, 254, 115, 42, 2, 0, 6, 37, 2, 125, 159, 0, 0, 4, 37, 3, 125, 158, 0, 0, 4, 42 + } }, }; // https://github.com/benaadams/Ben.Demystifier/issues/56