forked from acouzens/open5gs
[SMF] Invalid Message(SmContextCreateData) (#2590)
curl --noproxy '*' --http2-prior-knowledge -X POST --header "Content-Type: multipart/related" --data-binary @pdu http:/192.168.29.231:7777/nsmf-pdusession/v1/sm-contexts Attaching file 'pdu' SMF crashes as not able to decode the message properly. SmContextCreateData is not accessible.
This commit is contained in:
parent
2fbc445d32
commit
260eabb317
|
@ -1018,8 +1018,10 @@ smf_ue_t *smf_ue_add_by_supi(char *supi)
|
||||||
|
|
||||||
ogs_assert(supi);
|
ogs_assert(supi);
|
||||||
|
|
||||||
if ((smf_ue = smf_ue_add()) == NULL)
|
if ((smf_ue = smf_ue_add()) == NULL) {
|
||||||
|
ogs_error("smf_ue_add_by_supi() failed");
|
||||||
return NULL;
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
smf_ue->supi = ogs_strdup(supi);
|
smf_ue->supi = ogs_strdup(supi);
|
||||||
ogs_assert(smf_ue->supi);
|
ogs_assert(smf_ue->supi);
|
||||||
|
@ -1467,7 +1469,10 @@ smf_sess_t *smf_sess_add_by_sbi_message(ogs_sbi_message_t *message)
|
||||||
|
|
||||||
ogs_assert(message);
|
ogs_assert(message);
|
||||||
SmContextCreateData = message->SmContextCreateData;
|
SmContextCreateData = message->SmContextCreateData;
|
||||||
ogs_assert(SmContextCreateData);
|
if (!SmContextCreateData) {
|
||||||
|
ogs_error("No SmContextCreateData");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
if (!SmContextCreateData->supi) {
|
if (!SmContextCreateData->supi) {
|
||||||
ogs_error("No SUPI");
|
ogs_error("No SUPI");
|
||||||
|
@ -1482,8 +1487,10 @@ smf_sess_t *smf_sess_add_by_sbi_message(ogs_sbi_message_t *message)
|
||||||
smf_ue = smf_ue_find_by_supi(SmContextCreateData->supi);
|
smf_ue = smf_ue_find_by_supi(SmContextCreateData->supi);
|
||||||
if (!smf_ue) {
|
if (!smf_ue) {
|
||||||
smf_ue = smf_ue_add_by_supi(SmContextCreateData->supi);
|
smf_ue = smf_ue_add_by_supi(SmContextCreateData->supi);
|
||||||
if (!smf_ue)
|
if (!smf_ue) {
|
||||||
|
ogs_error("smf_ue_add_by_supi() failed");
|
||||||
return NULL;
|
return NULL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
sess = smf_sess_find_by_psi(smf_ue, SmContextCreateData->pdu_session_id);
|
sess = smf_sess_find_by_psi(smf_ue, SmContextCreateData->pdu_session_id);
|
||||||
|
|
|
@ -528,7 +528,15 @@ void smf_state_operational(ogs_fsm_t *s, smf_event_t *e)
|
||||||
|
|
||||||
DEFAULT
|
DEFAULT
|
||||||
sess = smf_sess_add_by_sbi_message(&sbi_message);
|
sess = smf_sess_add_by_sbi_message(&sbi_message);
|
||||||
ogs_assert(sess);
|
if (!sess) {
|
||||||
|
ogs_error("smf_sess_add_by_sbi_message() failed");
|
||||||
|
smf_sbi_send_sm_context_create_error(stream,
|
||||||
|
OGS_SBI_HTTP_STATUS_BAD_REQUEST,
|
||||||
|
OGS_SBI_APP_ERRNO_NULL,
|
||||||
|
"smf_sess_add_by_sbi_message() failed",
|
||||||
|
NULL, NULL);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
smf_metrics_inst_by_slice_add(NULL, NULL,
|
smf_metrics_inst_by_slice_add(NULL, NULL,
|
||||||
SMF_METR_CTR_SM_PDUSESSIONCREATIONREQ, 1);
|
SMF_METR_CTR_SM_PDUSESSIONCREATIONREQ, 1);
|
||||||
|
|
Loading…
Reference in New Issue