diff options
author | Alexander Couzens <lynxis@fe80.eu> | 2023-07-19 21:48:29 +0200 |
---|---|---|
committer | Pau Espin Pedrol <pespin@sysmocom.de> | 2024-02-28 14:24:25 +0100 |
commit | 414a61880466ee692ac30d0b30070bdb13e0f39b (patch) | |
tree | be1bf6fd4dec9689c66386e9a2e336431af83309 /src | |
parent | c26105e16566c7af70c948cded59a7aee01ca996 (diff) |
ipa: fix empty IPA CCM ID Tags
decode_ies() would crash because lists:lasts([]) tries to access an
empty lists.
Change-Id: I6f44561f83c84bac7e5c98747f969f5436617f90
Diffstat (limited to 'src')
-rw-r--r-- | src/ipa_proto_ccm.erl | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/ipa_proto_ccm.erl b/src/ipa_proto_ccm.erl index 27ceba9..87eb15e 100644 --- a/src/ipa_proto_ccm.erl +++ b/src/ipa_proto_ccm.erl @@ -82,9 +82,12 @@ decode_ies(<<1:8, IdTag:8, Remain/binary>>, IeList) when is_list(IeList) -> decode_ies(<<0:8, Len:8, TypeValue:Len/binary, Remain/binary>>, IeList) when is_list(IeList) -> <<Type:8, Value/binary>> = TypeValue, ValueList = binary_to_list(Value), - case lists:last(ValueList) of - 0 -> ValueStripped = lists:droplast(ValueList); - _ -> ValueStripped = ValueList + case ValueList of + [] -> ValueStripped = []; + _ -> case lists:last(ValueList) of + 0 -> ValueStripped = lists:droplast(ValueList); + _ -> ValueStripped = ValueList + end end, decode_ies(Remain, IeList ++ [{string, decode_idtag(Type), ValueStripped}]). |