summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAlexander Couzens <lynxis@fe80.eu>2023-07-19 21:48:29 +0200
committerPau Espin Pedrol <pespin@sysmocom.de>2024-02-28 14:24:25 +0100
commit414a61880466ee692ac30d0b30070bdb13e0f39b (patch)
treebe1bf6fd4dec9689c66386e9a2e336431af83309 /src
parentc26105e16566c7af70c948cded59a7aee01ca996 (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.erl9
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}]).