forked from acouzens/open5gs
[NRF] Fixed NRF crash when Custom nfType (#2576)
NF Instance Registration to reproduce crash: curl -v -X PUT -d '{"nfInstanceId":"0b8a8d59-af80-4fb7-8645-b832fd69d94a","nfType":"CUSTOM_INF","nfStatus":"REGISTERED","ipv4Addresses":["127.0.13.37"]}' --http2-prior-knowledge http://127.0.0.10:7777/nnrf-nfm/v1/nf-instances/0b8a8d59-af80-4fb7-8645-b832fd69d94a
This commit is contained in:
parent
2f8ae91b0b
commit
2aa12449aa
|
@ -40,6 +40,33 @@ bool nrf_nnrf_handle_nf_register(ogs_sbi_nf_instance_t *nf_instance,
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!NFProfile->nf_instance_id) {
|
||||||
|
ogs_error("No NFProfile.NFInstanceId");
|
||||||
|
ogs_assert(true ==
|
||||||
|
ogs_sbi_server_send_error(
|
||||||
|
stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST,
|
||||||
|
recvmsg, "No NFProfile.NFInstanceId", NULL));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!NFProfile->nf_type) {
|
||||||
|
ogs_error("No NFProfile.NFType");
|
||||||
|
ogs_assert(true ==
|
||||||
|
ogs_sbi_server_send_error(
|
||||||
|
stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST,
|
||||||
|
recvmsg, "No NFProfile.NFType", NULL));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!NFProfile->nf_status) {
|
||||||
|
ogs_error("No NFProfile.NFStatus");
|
||||||
|
ogs_assert(true ==
|
||||||
|
ogs_sbi_server_send_error(
|
||||||
|
stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST,
|
||||||
|
recvmsg, "No NFProfile.NFStatus", NULL));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
ogs_nnrf_nfm_handle_nf_profile(nf_instance, NFProfile);
|
ogs_nnrf_nfm_handle_nf_profile(nf_instance, NFProfile);
|
||||||
|
|
||||||
if (OGS_FSM_CHECK(&nf_instance->sm, nrf_nf_state_will_register)) {
|
if (OGS_FSM_CHECK(&nf_instance->sm, nrf_nf_state_will_register)) {
|
||||||
|
|
|
@ -164,7 +164,6 @@ void nrf_state_operational(ogs_fsm_t *s, nrf_event_t *e)
|
||||||
nrf_nf_state_exception)) {
|
nrf_nf_state_exception)) {
|
||||||
ogs_error("[%s] State machine exception",
|
ogs_error("[%s] State machine exception",
|
||||||
nf_instance->id);
|
nf_instance->id);
|
||||||
ogs_sbi_message_free(&message);
|
|
||||||
|
|
||||||
nrf_nf_fsm_fini(nf_instance);
|
nrf_nf_fsm_fini(nf_instance);
|
||||||
ogs_sbi_nf_instance_remove(nf_instance);
|
ogs_sbi_nf_instance_remove(nf_instance);
|
||||||
|
|
Loading…
Reference in New Issue