From 9f294d3612f998860004820d1d85b4264721577b Mon Sep 17 00:00:00 2001 From: Alexander Couzens Date: Wed, 19 Jul 2023 21:48:29 +0200 Subject: [PATCH] ipa: fix empty IPA CCM ID Tags decode_ies() would crash because lists:lasts([]) tries to access an empty lists. --- src/ipa_proto_ccm.erl | 9 ++++++--- 1 file 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) -> <> = 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}]).