From d2e0866cd6a734b046672f862b73970bd5a9a27e Mon Sep 17 00:00:00 2001 From: Anders Svensson Date: Fri, 13 Oct 2017 15:47:14 +0200 Subject: Fix faulty recursion The wrong variable was passed into the decode recursion, causing the options map to be contaminated by strict_mbit and failed_avp modifications that should only apply to component AVPs in the Grouped case. Decode errors and M-bits could be ignored as a result. --- lib/diameter/src/base/diameter_gen.erl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/diameter/src/base/diameter_gen.erl b/lib/diameter/src/base/diameter_gen.erl index d3b9f704fe..3d7d443fd4 100644 --- a/lib/diameter/src/base/diameter_gen.erl +++ b/lib/diameter/src/base/diameter_gen.erl @@ -320,7 +320,7 @@ decode(Bin, Code, Vid, DataLen, Pad, M, P, Name, Mod, Fmt, Strict, Opts0, index = Idx}, Dec = dec(Data, Name, NameT, Mod, Fmt, Opts, Avp), - Acc = decode(T, Name, Mod, Fmt, Strict, Opts, Idx+1, AM),%% recurse + Acc = decode(T, Name, Mod, Fmt, Strict, Opts0, Idx+1, AM),%% recurse acc(Acc, Dec, I, Field, Arity, Strict, Mod, Opts); _ -> {NameT, _Field, _Arity, {_, AM}} -- cgit v1.2.3