From 3705baddc3c25800d9f45b1e095843956f10a902 Mon Sep 17 00:00:00 2001 From: Andre Puschmann Date: Tue, 5 Dec 2017 22:06:30 +0100 Subject: [PATCH] nas: initialize ctxt variable and only check ksi if ctxt is present --- srsue/src/upper/nas.cc | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/srsue/src/upper/nas.cc b/srsue/src/upper/nas.cc index 62e23d852..5927c3c64 100644 --- a/srsue/src/upper/nas.cc +++ b/srsue/src/upper/nas.cc @@ -44,7 +44,7 @@ namespace srsue { ********************************************************************/ nas::nas() - : state(EMM_STATE_DEREGISTERED), plmn_selection(PLMN_SELECTED), have_guti(false), ip_addr(0), eps_bearer_id(0) + : state(EMM_STATE_DEREGISTERED), plmn_selection(PLMN_SELECTED), have_guti(false), have_ctxt(false), ip_addr(0), eps_bearer_id(0) { ctxt.rx_count = 0; ctxt.tx_count = 0; @@ -548,13 +548,15 @@ void nas::parse_security_mode_command(uint32_t lcid, byte_buffer_t *pdu) return; } - if(sec_mode_cmd.nas_ksi.nas_ksi != ctxt.ksi) - { - nas_log->warning("Sending Security Mode Reject due to key set ID mismatch\n"); - send_security_mode_reject(LIBLTE_MME_EMM_CAUSE_SECURITY_MODE_REJECTED_UNSPECIFIED); - pool->deallocate(pdu); - return; + if (have_ctxt) { + if(sec_mode_cmd.nas_ksi.nas_ksi != ctxt.ksi) { + nas_log->warning("Sending Security Mode Reject due to key set ID mismatch\n"); + send_security_mode_reject(LIBLTE_MME_EMM_CAUSE_SECURITY_MODE_REJECTED_UNSPECIFIED); + pool->deallocate(pdu); + return; + } } + // MME is setting up security context // TODO: check nonce (not sent by Amari) @@ -744,7 +746,7 @@ void nas::send_attach_request() { nas_log->info("Sending attach request\n"); rrc->write_sdu(cfg.lcid, msg); - if(have_ctxt) { + if (have_ctxt) { ctxt.tx_count++; } }