[sre] Throw ArgumentOutOfRange exn in MethodBuilder.DefineParameter if called
authorAleksey Kliger <aleksey@xamarin.com>
Thu, 3 Aug 2017 21:51:47 +0000 (17:51 -0400)
committerAleksey Kliger <aleksey@xamarin.com>
Fri, 4 Aug 2017 16:55:38 +0000 (12:55 -0400)
before SetParameters.

Fixes xunit testpoint MethodBuilderDefineParameter:DefineParameter_NoParameters_NonZeroPosition_ThrowsArgumentOutOfRangeException

mcs/class/corlib/System.Reflection.Emit/MethodBuilder.cs

index 8748f20aba2b1e998f751affb651e45a133172e3..8f09f0262b4435f648ae0fa66289d6c4e68e206b 100644 (file)
@@ -342,7 +342,7 @@ namespace System.Reflection.Emit
                        //
                        // Extension: Mono allows position == 0 for the return attribute
                        //
-                       if ((position < 0) || (position > parameters.Length))
+                       if ((position < 0) || parameters == null || (position > parameters.Length))
                                throw new ArgumentOutOfRangeException ("position");
 
                        ParameterBuilder pb = new ParameterBuilder (this, position, attributes, strParamName);