Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/cecil.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJb Evain <jb@evain.net>2017-08-31 00:14:59 +0300
committerJb Evain <jb@evain.net>2017-08-31 00:14:59 +0300
commit22b36c3dc5dcc0ddba38164904a1b3daf02151e2 (patch)
treeaa689d4d2eed1d4b5d7e89b36460d6f4cbae2919
parentd85384de6f4eeb27d3b930a0b6fcbbe768ce592e (diff)
Protect against null variable and constant debug information
-rw-r--r--Mono.Cecil/AssemblyReader.cs14
1 files changed, 10 insertions, 4 deletions
diff --git a/Mono.Cecil/AssemblyReader.cs b/Mono.Cecil/AssemblyReader.cs
index 8217bc0..02d7787 100644
--- a/Mono.Cecil/AssemblyReader.cs
+++ b/Mono.Cecil/AssemblyReader.cs
@@ -2954,14 +2954,20 @@ namespace Mono.Cecil {
if (record.Col2.Length > 0) {
scope.variables = new Collection<VariableDebugInformation> ((int) record.Col2.Length);
- for (uint i = 0; i < record.Col2.Length; i++)
- scope.variables.Add (ReadLocalVariable (record.Col2.Start + i));
+ for (uint i = 0; i < record.Col2.Length; i++) {
+ var variable = ReadLocalVariable (record.Col2.Start + i);
+ if (variable != null)
+ scope.variables.Add (variable);
+ }
}
if (record.Col3.Length > 0) {
scope.constants = new Collection<ConstantDebugInformation> ((int) record.Col3.Length);
- for (uint i = 0; i < record.Col3.Length; i++)
- scope.constants.Add (ReadLocalConstant (record.Col3.Start + i));
+ for (uint i = 0; i < record.Col3.Length; i++) {
+ var constant = ReadLocalConstant (record.Col3.Start + i);
+ if (constant != null)
+ scope.constants.Add (constant);
+ }
}
return scope;