diff options
author | Jb Evain <jbevain@gmail.com> | 2015-09-29 18:21:27 +0300 |
---|---|---|
committer | Jb Evain <jbevain@gmail.com> | 2015-09-29 18:22:11 +0300 |
commit | 25612a0d936eaa217dfe700d101f0c81ef87965e (patch) | |
tree | b9ce4fbf766c1a2bf716ed0750b051de636b2d19 /Mono.Cecil.Metadata | |
parent | e29433cee4382084e2c35b77e3949b331e6b9d85 (diff) |
Prevent exception on invalid blob index
Diffstat (limited to 'Mono.Cecil.Metadata')
-rw-r--r-- | Mono.Cecil.Metadata/BlobHeap.cs | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/Mono.Cecil.Metadata/BlobHeap.cs b/Mono.Cecil.Metadata/BlobHeap.cs index 527d042..6a07fc6 100644 --- a/Mono.Cecil.Metadata/BlobHeap.cs +++ b/Mono.Cecil.Metadata/BlobHeap.cs @@ -31,6 +31,9 @@ namespace Mono.Cecil.Metadata { int position = (int) (index + Offset); int length = (int) data.ReadCompressedUInt32 (ref position); + if (length > data.Length - position) + return Empty<byte>.Array; + var buffer = new byte [length]; Buffer.BlockCopy (data, position, buffer, 0, length); |