forked from acouzens/open5gs
Fixed ASSERT when context has already been removed
This commit is contained in:
parent
668cc59f94
commit
fb95f1ff71
|
@ -497,7 +497,10 @@ void amf_state_operational(ogs_fsm_t *s, amf_event_t *e)
|
||||||
ogs_sbi_xact_remove(sbi_xact);
|
ogs_sbi_xact_remove(sbi_xact);
|
||||||
|
|
||||||
sess = amf_sess_cycle(sess);
|
sess = amf_sess_cycle(sess);
|
||||||
ogs_assert(sess);
|
if (!sess) {
|
||||||
|
ogs_error("Session has already been removed");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
amf_ue = sess->amf_ue;
|
amf_ue = sess->amf_ue;
|
||||||
ogs_assert(amf_ue);
|
ogs_assert(amf_ue);
|
||||||
|
@ -574,6 +577,12 @@ void amf_state_operational(ogs_fsm_t *s, amf_event_t *e)
|
||||||
case OGS_SBI_OBJ_UE_TYPE:
|
case OGS_SBI_OBJ_UE_TYPE:
|
||||||
amf_ue = (amf_ue_t *)sbi_object;
|
amf_ue = (amf_ue_t *)sbi_object;
|
||||||
ogs_assert(amf_ue);
|
ogs_assert(amf_ue);
|
||||||
|
amf_ue = amf_ue_cycle(amf_ue);
|
||||||
|
if (!amf_ue) {
|
||||||
|
ogs_error("UE(amf_ue) Context has already been removed");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
ogs_error("[%s] Cannot receive SBI message", amf_ue->suci);
|
ogs_error("[%s] Cannot receive SBI message", amf_ue->suci);
|
||||||
ogs_assert(OGS_OK ==
|
ogs_assert(OGS_OK ==
|
||||||
nas_5gs_send_gmm_reject_from_sbi(amf_ue,
|
nas_5gs_send_gmm_reject_from_sbi(amf_ue,
|
||||||
|
@ -583,6 +592,12 @@ void amf_state_operational(ogs_fsm_t *s, amf_event_t *e)
|
||||||
case OGS_SBI_OBJ_SESS_TYPE:
|
case OGS_SBI_OBJ_SESS_TYPE:
|
||||||
sess = (amf_sess_t *)sbi_object;
|
sess = (amf_sess_t *)sbi_object;
|
||||||
ogs_assert(sess);
|
ogs_assert(sess);
|
||||||
|
sess = amf_sess_cycle(sess);
|
||||||
|
if (!sess) {
|
||||||
|
ogs_error("Session has already been removed");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
ogs_error("[%d:%d] Cannot receive SBI message",
|
ogs_error("[%d:%d] Cannot receive SBI message",
|
||||||
sess->psi, sess->pti);
|
sess->psi, sess->pti);
|
||||||
if (sess->payload_container_type) {
|
if (sess->payload_container_type) {
|
||||||
|
|
|
@ -287,8 +287,10 @@ void ausf_state_operational(ogs_fsm_t *s, ausf_event_t *e)
|
||||||
ogs_sbi_xact_remove(sbi_xact);
|
ogs_sbi_xact_remove(sbi_xact);
|
||||||
|
|
||||||
ausf_ue = ausf_ue_cycle(ausf_ue);
|
ausf_ue = ausf_ue_cycle(ausf_ue);
|
||||||
ogs_assert(ausf_ue);
|
if (!ausf_ue) {
|
||||||
ogs_assert(OGS_FSM_STATE(&ausf_ue->sm));
|
ogs_error("UE(ausf-ue) Context has already been removed");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
e->ausf_ue = ausf_ue;
|
e->ausf_ue = ausf_ue;
|
||||||
e->sbi.message = &message;
|
e->sbi.message = &message;
|
||||||
|
|
|
@ -403,7 +403,11 @@ void pcf_state_operational(ogs_fsm_t *s, pcf_event_t *e)
|
||||||
ogs_sbi_xact_remove(sbi_xact);
|
ogs_sbi_xact_remove(sbi_xact);
|
||||||
|
|
||||||
pcf_ue = pcf_ue_cycle(pcf_ue);
|
pcf_ue = pcf_ue_cycle(pcf_ue);
|
||||||
ogs_assert(pcf_ue);
|
if (!pcf_ue) {
|
||||||
|
ogs_error("UE(pcf_ue) Context "
|
||||||
|
"has already been removed");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
e->pcf_ue = pcf_ue;
|
e->pcf_ue = pcf_ue;
|
||||||
e->sbi.message = &message;
|
e->sbi.message = &message;
|
||||||
|
@ -427,7 +431,10 @@ void pcf_state_operational(ogs_fsm_t *s, pcf_event_t *e)
|
||||||
ogs_sbi_xact_remove(sbi_xact);
|
ogs_sbi_xact_remove(sbi_xact);
|
||||||
|
|
||||||
sess = pcf_sess_cycle(sess);
|
sess = pcf_sess_cycle(sess);
|
||||||
ogs_assert(sess);
|
if (!sess) {
|
||||||
|
ogs_error("Session has already been removed");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
pcf_ue = sess->pcf_ue;
|
pcf_ue = sess->pcf_ue;
|
||||||
ogs_assert(pcf_ue);
|
ogs_assert(pcf_ue);
|
||||||
|
@ -475,7 +482,10 @@ void pcf_state_operational(ogs_fsm_t *s, pcf_event_t *e)
|
||||||
ogs_sbi_xact_remove(sbi_xact);
|
ogs_sbi_xact_remove(sbi_xact);
|
||||||
|
|
||||||
sess = pcf_sess_cycle(sess);
|
sess = pcf_sess_cycle(sess);
|
||||||
ogs_assert(sess);
|
if (!sess) {
|
||||||
|
ogs_error("Session has already been removed");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
pcf_ue = sess->pcf_ue;
|
pcf_ue = sess->pcf_ue;
|
||||||
ogs_assert(pcf_ue);
|
ogs_assert(pcf_ue);
|
||||||
|
@ -568,12 +578,22 @@ void pcf_state_operational(ogs_fsm_t *s, pcf_event_t *e)
|
||||||
case OGS_SBI_OBJ_UE_TYPE:
|
case OGS_SBI_OBJ_UE_TYPE:
|
||||||
pcf_ue = (pcf_ue_t *)sbi_object;
|
pcf_ue = (pcf_ue_t *)sbi_object;
|
||||||
ogs_assert(pcf_ue);
|
ogs_assert(pcf_ue);
|
||||||
|
pcf_ue = pcf_ue_cycle(pcf_ue);
|
||||||
|
if (!pcf_ue) {
|
||||||
|
ogs_error("UE(pcf_ue) has already been removed");
|
||||||
|
break;
|
||||||
|
}
|
||||||
ogs_error("[%s] Cannot receive SBI message", pcf_ue->supi);
|
ogs_error("[%s] Cannot receive SBI message", pcf_ue->supi);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case OGS_SBI_OBJ_SESS_TYPE:
|
case OGS_SBI_OBJ_SESS_TYPE:
|
||||||
sess = (pcf_sess_t *)sbi_object;
|
sess = (pcf_sess_t *)sbi_object;
|
||||||
ogs_assert(sess);
|
ogs_assert(sess);
|
||||||
|
sess = pcf_sess_cycle(sess);
|
||||||
|
if (!sess) {
|
||||||
|
ogs_error("Session has already been removed");
|
||||||
|
break;
|
||||||
|
}
|
||||||
ogs_error("[%d] Cannot receive SBI message", sess->psi);
|
ogs_error("[%d] Cannot receive SBI message", sess->psi);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
@ -321,7 +321,10 @@ void udm_state_operational(ogs_fsm_t *s, udm_event_t *e)
|
||||||
ogs_sbi_xact_remove(sbi_xact);
|
ogs_sbi_xact_remove(sbi_xact);
|
||||||
|
|
||||||
udm_ue = udm_ue_cycle(udm_ue);
|
udm_ue = udm_ue_cycle(udm_ue);
|
||||||
ogs_assert(udm_ue);
|
if (!udm_ue) {
|
||||||
|
ogs_error("UE(udm_ue) Context has already been removed");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
e->udm_ue = udm_ue;
|
e->udm_ue = udm_ue;
|
||||||
e->sbi.message = &message;
|
e->sbi.message = &message;
|
||||||
|
|
Loading…
Reference in New Issue