From a732bb3496cf24e62b607293de7c5ae49b3891ce Mon Sep 17 00:00:00 2001 From: Anders Svensson Date: Thu, 11 Apr 2013 09:43:24 +0200 Subject: Fix decode failure when AVP Length < 8 Such a length caused decode of a message with valid (24-bit) length to fail. Note that the error detected is wrong: it should be 5014 (INVALID_AVP_LENGTH), not 3009 (INVALID_AVP_BITS). This will be dealt with by OTP-11007. --- lib/diameter/src/base/diameter_codec.erl | 2 ++ 1 file changed, 2 insertions(+) (limited to 'lib/diameter/src') diff --git a/lib/diameter/src/base/diameter_codec.erl b/lib/diameter/src/base/diameter_codec.erl index e446a0209c..09b99b2cae 100644 --- a/lib/diameter/src/base/diameter_codec.erl +++ b/lib/diameter/src/base/diameter_codec.erl @@ -427,6 +427,8 @@ split_avp(Bin) -> <> = Bin, + 8 =< Length orelse ?THROW(invalid_avp_length), + DataSize = Length - 8, % size(Code+Flags+Length) = 8 octets PadSize = (4 - (DataSize rem 4)) rem 4, -- cgit v1.2.3