diff options
author | Fredrik Gustafsson <[email protected]> | 2013-11-06 16:38:57 +0100 |
---|---|---|
committer | Fredrik Gustafsson <[email protected]> | 2013-11-06 16:38:57 +0100 |
commit | 768a64354e3d69b3c0840a84dd072601c67ca39d (patch) | |
tree | 728bd82a698b43c560c9a24f151d2e9dc23dfb47 /lib/diameter/src/base/diameter_types.erl | |
parent | 0b13c6cbfff58f928778428deb6862a7744416bb (diff) | |
parent | 059109a20023043aca767b6f208f9c812c42eb20 (diff) | |
download | otp-768a64354e3d69b3c0840a84dd072601c67ca39d.tar.gz otp-768a64354e3d69b3c0840a84dd072601c67ca39d.tar.bz2 otp-768a64354e3d69b3c0840a84dd072601c67ca39d.zip |
Merge branch 'maint-r16' into maint
Diffstat (limited to 'lib/diameter/src/base/diameter_types.erl')
-rw-r--r-- | lib/diameter/src/base/diameter_types.erl | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/lib/diameter/src/base/diameter_types.erl b/lib/diameter/src/base/diameter_types.erl index 8c07e84777..ca3338be5f 100644 --- a/lib/diameter/src/base/diameter_types.erl +++ b/lib/diameter/src/base/diameter_types.erl @@ -92,6 +92,9 @@ when is_binary(Bin) -> binary_to_list(Bin); +'OctetString'(decode, B) -> + ?INVALID_LENGTH(B); + 'OctetString'(encode = M, zero) -> 'OctetString'(M, []); @@ -255,9 +258,7 @@ 2 == A, 16 == size(B) -> list_to_tuple([N || <<N:A/unit:8>> <= B]); -'Address'(decode, <<A:16, _/binary>> = B) - when 1 == A; - 2 == A -> +'Address'(decode, B) -> ?INVALID_LENGTH(B); 'Address'(encode, T) -> @@ -278,7 +279,10 @@ <<_,_/binary>> = 'OctetString'(M, X); 'DiameterIdentity'(decode = M, <<_,_/binary>> = X) -> - 'OctetString'(M, X). + 'OctetString'(M, X); + +'DiameterIdentity'(decode, X) -> + ?INVALID_LENGTH(X). %% -------------------- @@ -286,6 +290,9 @@ when is_binary(Bin) -> scan_uri(Bin); +'DiameterURI'(decode, B) -> + ?INVALID_LENGTH(B); + %% The minimal DiameterURI is "aaa://x", 7 characters. 'DiameterURI'(encode = M, zero) -> 'OctetString'(M, lists:duplicate(0,7)); @@ -330,9 +337,13 @@ %% -------------------- -'UTF8String'(decode, Bin) -> +'UTF8String'(decode, Bin) + when is_binary(Bin) -> tl([0|_] = unicode:characters_to_list([0, Bin])); %% assert list return +'UTF8String'(decode, B) -> + ?INVALID_LENGTH(B); + 'UTF8String'(encode = M, zero) -> 'UTF8String'(M, []); |