mirror of
https://github.com/open5gs/open5gs.git
synced 2026-05-02 05:10:10 +00:00
[SBI] Crash occurs when ENUM in the MAP (#2103)
This commit is contained in:
parent
ce668c556c
commit
969c116e77
1097 changed files with 266728 additions and 42047 deletions
|
|
@ -36,29 +36,61 @@ OpenAPI_provisioned_data_sets_t *OpenAPI_provisioned_data_sets_create(
|
|||
|
||||
void OpenAPI_provisioned_data_sets_free(OpenAPI_provisioned_data_sets_t *provisioned_data_sets)
|
||||
{
|
||||
OpenAPI_lnode_t *node = NULL;
|
||||
|
||||
if (NULL == provisioned_data_sets) {
|
||||
return;
|
||||
}
|
||||
OpenAPI_lnode_t *node;
|
||||
OpenAPI_access_and_mobility_subscription_data_free(provisioned_data_sets->am_data);
|
||||
OpenAPI_smf_selection_subscription_data_free(provisioned_data_sets->smf_sel_data);
|
||||
OpenAPI_sms_subscription_data_free(provisioned_data_sets->sms_subs_data);
|
||||
OpenAPI_list_for_each(provisioned_data_sets->sm_data, node) {
|
||||
OpenAPI_session_management_subscription_data_free(node->data);
|
||||
if (provisioned_data_sets->am_data) {
|
||||
OpenAPI_access_and_mobility_subscription_data_free(provisioned_data_sets->am_data);
|
||||
provisioned_data_sets->am_data = NULL;
|
||||
}
|
||||
if (provisioned_data_sets->smf_sel_data) {
|
||||
OpenAPI_smf_selection_subscription_data_free(provisioned_data_sets->smf_sel_data);
|
||||
provisioned_data_sets->smf_sel_data = NULL;
|
||||
}
|
||||
if (provisioned_data_sets->sms_subs_data) {
|
||||
OpenAPI_sms_subscription_data_free(provisioned_data_sets->sms_subs_data);
|
||||
provisioned_data_sets->sms_subs_data = NULL;
|
||||
}
|
||||
if (provisioned_data_sets->sm_data) {
|
||||
OpenAPI_list_for_each(provisioned_data_sets->sm_data, node) {
|
||||
OpenAPI_session_management_subscription_data_free(node->data);
|
||||
}
|
||||
OpenAPI_list_free(provisioned_data_sets->sm_data);
|
||||
provisioned_data_sets->sm_data = NULL;
|
||||
}
|
||||
if (provisioned_data_sets->trace_data) {
|
||||
OpenAPI_trace_data_free(provisioned_data_sets->trace_data);
|
||||
provisioned_data_sets->trace_data = NULL;
|
||||
}
|
||||
if (provisioned_data_sets->sms_mng_data) {
|
||||
OpenAPI_sms_management_subscription_data_free(provisioned_data_sets->sms_mng_data);
|
||||
provisioned_data_sets->sms_mng_data = NULL;
|
||||
}
|
||||
if (provisioned_data_sets->lcs_privacy_data) {
|
||||
OpenAPI_lcs_privacy_data_free(provisioned_data_sets->lcs_privacy_data);
|
||||
provisioned_data_sets->lcs_privacy_data = NULL;
|
||||
}
|
||||
if (provisioned_data_sets->lcs_mo_data) {
|
||||
OpenAPI_lcs_mo_data_free(provisioned_data_sets->lcs_mo_data);
|
||||
provisioned_data_sets->lcs_mo_data = NULL;
|
||||
}
|
||||
if (provisioned_data_sets->lcs_bca_data) {
|
||||
OpenAPI_lcs_broadcast_assistance_types_data_free(provisioned_data_sets->lcs_bca_data);
|
||||
provisioned_data_sets->lcs_bca_data = NULL;
|
||||
}
|
||||
if (provisioned_data_sets->v2x_data) {
|
||||
OpenAPI_v2x_subscription_data_free(provisioned_data_sets->v2x_data);
|
||||
provisioned_data_sets->v2x_data = NULL;
|
||||
}
|
||||
OpenAPI_list_free(provisioned_data_sets->sm_data);
|
||||
OpenAPI_trace_data_free(provisioned_data_sets->trace_data);
|
||||
OpenAPI_sms_management_subscription_data_free(provisioned_data_sets->sms_mng_data);
|
||||
OpenAPI_lcs_privacy_data_free(provisioned_data_sets->lcs_privacy_data);
|
||||
OpenAPI_lcs_mo_data_free(provisioned_data_sets->lcs_mo_data);
|
||||
OpenAPI_lcs_broadcast_assistance_types_data_free(provisioned_data_sets->lcs_bca_data);
|
||||
OpenAPI_v2x_subscription_data_free(provisioned_data_sets->v2x_data);
|
||||
ogs_free(provisioned_data_sets);
|
||||
}
|
||||
|
||||
cJSON *OpenAPI_provisioned_data_sets_convertToJSON(OpenAPI_provisioned_data_sets_t *provisioned_data_sets)
|
||||
{
|
||||
cJSON *item = NULL;
|
||||
OpenAPI_lnode_t *node = NULL;
|
||||
|
||||
if (provisioned_data_sets == NULL) {
|
||||
ogs_error("OpenAPI_provisioned_data_sets_convertToJSON() failed [ProvisionedDataSets]");
|
||||
|
|
@ -111,17 +143,13 @@ cJSON *OpenAPI_provisioned_data_sets_convertToJSON(OpenAPI_provisioned_data_sets
|
|||
ogs_error("OpenAPI_provisioned_data_sets_convertToJSON() failed [sm_data]");
|
||||
goto end;
|
||||
}
|
||||
|
||||
OpenAPI_lnode_t *sm_data_node;
|
||||
if (provisioned_data_sets->sm_data) {
|
||||
OpenAPI_list_for_each(provisioned_data_sets->sm_data, sm_data_node) {
|
||||
cJSON *itemLocal = OpenAPI_session_management_subscription_data_convertToJSON(sm_data_node->data);
|
||||
if (itemLocal == NULL) {
|
||||
ogs_error("OpenAPI_provisioned_data_sets_convertToJSON() failed [sm_data]");
|
||||
goto end;
|
||||
}
|
||||
cJSON_AddItemToArray(sm_dataList, itemLocal);
|
||||
OpenAPI_list_for_each(provisioned_data_sets->sm_data, node) {
|
||||
cJSON *itemLocal = OpenAPI_session_management_subscription_data_convertToJSON(node->data);
|
||||
if (itemLocal == NULL) {
|
||||
ogs_error("OpenAPI_provisioned_data_sets_convertToJSON() failed [sm_data]");
|
||||
goto end;
|
||||
}
|
||||
cJSON_AddItemToArray(sm_dataList, itemLocal);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -210,94 +238,93 @@ end:
|
|||
OpenAPI_provisioned_data_sets_t *OpenAPI_provisioned_data_sets_parseFromJSON(cJSON *provisioned_data_setsJSON)
|
||||
{
|
||||
OpenAPI_provisioned_data_sets_t *provisioned_data_sets_local_var = NULL;
|
||||
cJSON *am_data = cJSON_GetObjectItemCaseSensitive(provisioned_data_setsJSON, "amData");
|
||||
|
||||
OpenAPI_lnode_t *node = NULL;
|
||||
cJSON *am_data = NULL;
|
||||
OpenAPI_access_and_mobility_subscription_data_t *am_data_local_nonprim = NULL;
|
||||
cJSON *smf_sel_data = NULL;
|
||||
OpenAPI_smf_selection_subscription_data_t *smf_sel_data_local_nonprim = NULL;
|
||||
cJSON *sms_subs_data = NULL;
|
||||
OpenAPI_sms_subscription_data_t *sms_subs_data_local_nonprim = NULL;
|
||||
cJSON *sm_data = NULL;
|
||||
OpenAPI_list_t *sm_dataList = NULL;
|
||||
cJSON *trace_data = NULL;
|
||||
OpenAPI_trace_data_t *trace_data_local_nonprim = NULL;
|
||||
cJSON *sms_mng_data = NULL;
|
||||
OpenAPI_sms_management_subscription_data_t *sms_mng_data_local_nonprim = NULL;
|
||||
cJSON *lcs_privacy_data = NULL;
|
||||
OpenAPI_lcs_privacy_data_t *lcs_privacy_data_local_nonprim = NULL;
|
||||
cJSON *lcs_mo_data = NULL;
|
||||
OpenAPI_lcs_mo_data_t *lcs_mo_data_local_nonprim = NULL;
|
||||
cJSON *lcs_bca_data = NULL;
|
||||
OpenAPI_lcs_broadcast_assistance_types_data_t *lcs_bca_data_local_nonprim = NULL;
|
||||
cJSON *v2x_data = NULL;
|
||||
OpenAPI_v2x_subscription_data_t *v2x_data_local_nonprim = NULL;
|
||||
am_data = cJSON_GetObjectItemCaseSensitive(provisioned_data_setsJSON, "amData");
|
||||
if (am_data) {
|
||||
am_data_local_nonprim = OpenAPI_access_and_mobility_subscription_data_parseFromJSON(am_data);
|
||||
}
|
||||
|
||||
cJSON *smf_sel_data = cJSON_GetObjectItemCaseSensitive(provisioned_data_setsJSON, "smfSelData");
|
||||
|
||||
OpenAPI_smf_selection_subscription_data_t *smf_sel_data_local_nonprim = NULL;
|
||||
smf_sel_data = cJSON_GetObjectItemCaseSensitive(provisioned_data_setsJSON, "smfSelData");
|
||||
if (smf_sel_data) {
|
||||
smf_sel_data_local_nonprim = OpenAPI_smf_selection_subscription_data_parseFromJSON(smf_sel_data);
|
||||
}
|
||||
|
||||
cJSON *sms_subs_data = cJSON_GetObjectItemCaseSensitive(provisioned_data_setsJSON, "smsSubsData");
|
||||
|
||||
OpenAPI_sms_subscription_data_t *sms_subs_data_local_nonprim = NULL;
|
||||
sms_subs_data = cJSON_GetObjectItemCaseSensitive(provisioned_data_setsJSON, "smsSubsData");
|
||||
if (sms_subs_data) {
|
||||
sms_subs_data_local_nonprim = OpenAPI_sms_subscription_data_parseFromJSON(sms_subs_data);
|
||||
}
|
||||
|
||||
cJSON *sm_data = cJSON_GetObjectItemCaseSensitive(provisioned_data_setsJSON, "smData");
|
||||
|
||||
OpenAPI_list_t *sm_dataList;
|
||||
sm_data = cJSON_GetObjectItemCaseSensitive(provisioned_data_setsJSON, "smData");
|
||||
if (sm_data) {
|
||||
cJSON *sm_data_local_nonprimitive;
|
||||
if (!cJSON_IsArray(sm_data)){
|
||||
ogs_error("OpenAPI_provisioned_data_sets_parseFromJSON() failed [sm_data]");
|
||||
goto end;
|
||||
}
|
||||
|
||||
sm_dataList = OpenAPI_list_create();
|
||||
|
||||
cJSON_ArrayForEach(sm_data_local_nonprimitive, sm_data ) {
|
||||
if (!cJSON_IsObject(sm_data_local_nonprimitive)) {
|
||||
cJSON *sm_data_local = NULL;
|
||||
if (!cJSON_IsArray(sm_data)) {
|
||||
ogs_error("OpenAPI_provisioned_data_sets_parseFromJSON() failed [sm_data]");
|
||||
goto end;
|
||||
}
|
||||
OpenAPI_session_management_subscription_data_t *sm_dataItem = OpenAPI_session_management_subscription_data_parseFromJSON(sm_data_local_nonprimitive);
|
||||
|
||||
if (!sm_dataItem) {
|
||||
ogs_error("No sm_dataItem");
|
||||
OpenAPI_list_free(sm_dataList);
|
||||
goto end;
|
||||
sm_dataList = OpenAPI_list_create();
|
||||
|
||||
cJSON_ArrayForEach(sm_data_local, sm_data) {
|
||||
if (!cJSON_IsObject(sm_data_local)) {
|
||||
ogs_error("OpenAPI_provisioned_data_sets_parseFromJSON() failed [sm_data]");
|
||||
goto end;
|
||||
}
|
||||
OpenAPI_session_management_subscription_data_t *sm_dataItem = OpenAPI_session_management_subscription_data_parseFromJSON(sm_data_local);
|
||||
if (!sm_dataItem) {
|
||||
ogs_error("No sm_dataItem");
|
||||
OpenAPI_list_free(sm_dataList);
|
||||
goto end;
|
||||
}
|
||||
OpenAPI_list_add(sm_dataList, sm_dataItem);
|
||||
}
|
||||
|
||||
OpenAPI_list_add(sm_dataList, sm_dataItem);
|
||||
}
|
||||
}
|
||||
|
||||
cJSON *trace_data = cJSON_GetObjectItemCaseSensitive(provisioned_data_setsJSON, "traceData");
|
||||
|
||||
OpenAPI_trace_data_t *trace_data_local_nonprim = NULL;
|
||||
trace_data = cJSON_GetObjectItemCaseSensitive(provisioned_data_setsJSON, "traceData");
|
||||
if (trace_data) {
|
||||
trace_data_local_nonprim = OpenAPI_trace_data_parseFromJSON(trace_data);
|
||||
}
|
||||
|
||||
cJSON *sms_mng_data = cJSON_GetObjectItemCaseSensitive(provisioned_data_setsJSON, "smsMngData");
|
||||
|
||||
OpenAPI_sms_management_subscription_data_t *sms_mng_data_local_nonprim = NULL;
|
||||
sms_mng_data = cJSON_GetObjectItemCaseSensitive(provisioned_data_setsJSON, "smsMngData");
|
||||
if (sms_mng_data) {
|
||||
sms_mng_data_local_nonprim = OpenAPI_sms_management_subscription_data_parseFromJSON(sms_mng_data);
|
||||
}
|
||||
|
||||
cJSON *lcs_privacy_data = cJSON_GetObjectItemCaseSensitive(provisioned_data_setsJSON, "lcsPrivacyData");
|
||||
|
||||
OpenAPI_lcs_privacy_data_t *lcs_privacy_data_local_nonprim = NULL;
|
||||
lcs_privacy_data = cJSON_GetObjectItemCaseSensitive(provisioned_data_setsJSON, "lcsPrivacyData");
|
||||
if (lcs_privacy_data) {
|
||||
lcs_privacy_data_local_nonprim = OpenAPI_lcs_privacy_data_parseFromJSON(lcs_privacy_data);
|
||||
}
|
||||
|
||||
cJSON *lcs_mo_data = cJSON_GetObjectItemCaseSensitive(provisioned_data_setsJSON, "lcsMoData");
|
||||
|
||||
OpenAPI_lcs_mo_data_t *lcs_mo_data_local_nonprim = NULL;
|
||||
lcs_mo_data = cJSON_GetObjectItemCaseSensitive(provisioned_data_setsJSON, "lcsMoData");
|
||||
if (lcs_mo_data) {
|
||||
lcs_mo_data_local_nonprim = OpenAPI_lcs_mo_data_parseFromJSON(lcs_mo_data);
|
||||
}
|
||||
|
||||
cJSON *lcs_bca_data = cJSON_GetObjectItemCaseSensitive(provisioned_data_setsJSON, "lcsBcaData");
|
||||
|
||||
OpenAPI_lcs_broadcast_assistance_types_data_t *lcs_bca_data_local_nonprim = NULL;
|
||||
lcs_bca_data = cJSON_GetObjectItemCaseSensitive(provisioned_data_setsJSON, "lcsBcaData");
|
||||
if (lcs_bca_data) {
|
||||
lcs_bca_data_local_nonprim = OpenAPI_lcs_broadcast_assistance_types_data_parseFromJSON(lcs_bca_data);
|
||||
}
|
||||
|
||||
cJSON *v2x_data = cJSON_GetObjectItemCaseSensitive(provisioned_data_setsJSON, "v2xData");
|
||||
|
||||
OpenAPI_v2x_subscription_data_t *v2x_data_local_nonprim = NULL;
|
||||
v2x_data = cJSON_GetObjectItemCaseSensitive(provisioned_data_setsJSON, "v2xData");
|
||||
if (v2x_data) {
|
||||
v2x_data_local_nonprim = OpenAPI_v2x_subscription_data_parseFromJSON(v2x_data);
|
||||
}
|
||||
|
|
@ -317,6 +344,49 @@ OpenAPI_provisioned_data_sets_t *OpenAPI_provisioned_data_sets_parseFromJSON(cJS
|
|||
|
||||
return provisioned_data_sets_local_var;
|
||||
end:
|
||||
if (am_data_local_nonprim) {
|
||||
OpenAPI_access_and_mobility_subscription_data_free(am_data_local_nonprim);
|
||||
am_data_local_nonprim = NULL;
|
||||
}
|
||||
if (smf_sel_data_local_nonprim) {
|
||||
OpenAPI_smf_selection_subscription_data_free(smf_sel_data_local_nonprim);
|
||||
smf_sel_data_local_nonprim = NULL;
|
||||
}
|
||||
if (sms_subs_data_local_nonprim) {
|
||||
OpenAPI_sms_subscription_data_free(sms_subs_data_local_nonprim);
|
||||
sms_subs_data_local_nonprim = NULL;
|
||||
}
|
||||
if (sm_dataList) {
|
||||
OpenAPI_list_for_each(sm_dataList, node) {
|
||||
OpenAPI_session_management_subscription_data_free(node->data);
|
||||
}
|
||||
OpenAPI_list_free(sm_dataList);
|
||||
sm_dataList = NULL;
|
||||
}
|
||||
if (trace_data_local_nonprim) {
|
||||
OpenAPI_trace_data_free(trace_data_local_nonprim);
|
||||
trace_data_local_nonprim = NULL;
|
||||
}
|
||||
if (sms_mng_data_local_nonprim) {
|
||||
OpenAPI_sms_management_subscription_data_free(sms_mng_data_local_nonprim);
|
||||
sms_mng_data_local_nonprim = NULL;
|
||||
}
|
||||
if (lcs_privacy_data_local_nonprim) {
|
||||
OpenAPI_lcs_privacy_data_free(lcs_privacy_data_local_nonprim);
|
||||
lcs_privacy_data_local_nonprim = NULL;
|
||||
}
|
||||
if (lcs_mo_data_local_nonprim) {
|
||||
OpenAPI_lcs_mo_data_free(lcs_mo_data_local_nonprim);
|
||||
lcs_mo_data_local_nonprim = NULL;
|
||||
}
|
||||
if (lcs_bca_data_local_nonprim) {
|
||||
OpenAPI_lcs_broadcast_assistance_types_data_free(lcs_bca_data_local_nonprim);
|
||||
lcs_bca_data_local_nonprim = NULL;
|
||||
}
|
||||
if (v2x_data_local_nonprim) {
|
||||
OpenAPI_v2x_subscription_data_free(v2x_data_local_nonprim);
|
||||
v2x_data_local_nonprim = NULL;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue