pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/erlang/osmo-epdg/+/40297?usp=email )
Change subject: gsup: Fix rx of AuthInfoReq without IP addr val ......................................................................
gsup: Fix rx of AuthInfoReq without IP addr val
The var PdpAddress was being reassigned and erlang crashed when running ttcn3-epdg-test with: """ {{badmatch,#{ipv4 => <<0,0,0,0>>}},[{gsup_server,rx_gsup,3, [{file,"/tmp/osmo-epdg/src/gsup_server.erl"},{line,308}]}, {misc,'-spawn_wait_ret/2-fun-0-',2, [{file,"/tmp/osmo-epdg/src/misc.erl"},{line,43}]}]} """
Fixes: 2d2e43c061652ae6c9fd409e9badc33d5d66e068 Change-Id: Iaa4b45a00e472a324ad98f57a54db04454935130 --- M src/gsup_server.erl 1 file changed, 4 insertions(+), 3 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/erlang/osmo-epdg refs/changes/97/40297/1
diff --git a/src/gsup_server.erl b/src/gsup_server.erl index c4c28cf..256522e 100644 --- a/src/gsup_server.erl +++ b/src/gsup_server.erl @@ -296,13 +296,14 @@ case maps:find(pdp_info_list, GsupMsgRx) of {ok, [PdpInfo]} -> #{pdp_context_id := _PDPCtxId, - pdp_address := #{address := PdpAddress, + pdp_address := #{address := PdpAddressRx, pdp_type_nr := PdpTypeNr, pdp_type_org := 241}, access_point_name := Apn } = PdpInfo, - case maps:is_key(ipv4,PdpAddress) or maps:is_key(ipv6,PdpAddress) of - true -> ok; %% Address received so do nothing + case maps:is_key(ipv4,PdpAddressRx) or maps:is_key(ipv6,PdpAddressRx) of + true -> %% Address received, use it + PdpAddress = PdpAddressRx; false -> %% No address received from strongswan, use a default value PdpTypeNr = ?GTP_PDP_ADDR_TYPE_NR_IPv4, PdpAddress = #{ipv4 => <<0,0,0,0>>}