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
committerMarek Safar <marek.safar@gmail.com>2017-08-31 16:27:37 +0300
commit81ae5098552e7e643cdc750f2b7eb99e9bfea7fa (patch)
tree6e3ababff16f1a5cfd4c098fffc407acefd30f63
parent14e17dfbebf5651b5ce70c7fb317e388f8a3a271 (diff)
Protect against null variable and constant debug informationmono-2017-08
-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;