mirror of
https://github.com/open5gs/open5gs.git
synced 2026-05-05 07:08:11 +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
|
|
@ -24,23 +24,37 @@ OpenAPI_pdu_session_tsn_bridge_t *OpenAPI_pdu_session_tsn_bridge_create(
|
|||
|
||||
void OpenAPI_pdu_session_tsn_bridge_free(OpenAPI_pdu_session_tsn_bridge_t *pdu_session_tsn_bridge)
|
||||
{
|
||||
OpenAPI_lnode_t *node = NULL;
|
||||
|
||||
if (NULL == pdu_session_tsn_bridge) {
|
||||
return;
|
||||
}
|
||||
OpenAPI_lnode_t *node;
|
||||
OpenAPI_tsn_bridge_info_free(pdu_session_tsn_bridge->tsn_bridge_info);
|
||||
OpenAPI_bridge_management_container_free(pdu_session_tsn_bridge->tsn_bridge_man_cont);
|
||||
OpenAPI_port_management_container_free(pdu_session_tsn_bridge->tsn_port_man_cont_dstt);
|
||||
OpenAPI_list_for_each(pdu_session_tsn_bridge->tsn_port_man_cont_nwtts, node) {
|
||||
OpenAPI_port_management_container_free(node->data);
|
||||
if (pdu_session_tsn_bridge->tsn_bridge_info) {
|
||||
OpenAPI_tsn_bridge_info_free(pdu_session_tsn_bridge->tsn_bridge_info);
|
||||
pdu_session_tsn_bridge->tsn_bridge_info = NULL;
|
||||
}
|
||||
if (pdu_session_tsn_bridge->tsn_bridge_man_cont) {
|
||||
OpenAPI_bridge_management_container_free(pdu_session_tsn_bridge->tsn_bridge_man_cont);
|
||||
pdu_session_tsn_bridge->tsn_bridge_man_cont = NULL;
|
||||
}
|
||||
if (pdu_session_tsn_bridge->tsn_port_man_cont_dstt) {
|
||||
OpenAPI_port_management_container_free(pdu_session_tsn_bridge->tsn_port_man_cont_dstt);
|
||||
pdu_session_tsn_bridge->tsn_port_man_cont_dstt = NULL;
|
||||
}
|
||||
if (pdu_session_tsn_bridge->tsn_port_man_cont_nwtts) {
|
||||
OpenAPI_list_for_each(pdu_session_tsn_bridge->tsn_port_man_cont_nwtts, node) {
|
||||
OpenAPI_port_management_container_free(node->data);
|
||||
}
|
||||
OpenAPI_list_free(pdu_session_tsn_bridge->tsn_port_man_cont_nwtts);
|
||||
pdu_session_tsn_bridge->tsn_port_man_cont_nwtts = NULL;
|
||||
}
|
||||
OpenAPI_list_free(pdu_session_tsn_bridge->tsn_port_man_cont_nwtts);
|
||||
ogs_free(pdu_session_tsn_bridge);
|
||||
}
|
||||
|
||||
cJSON *OpenAPI_pdu_session_tsn_bridge_convertToJSON(OpenAPI_pdu_session_tsn_bridge_t *pdu_session_tsn_bridge)
|
||||
{
|
||||
cJSON *item = NULL;
|
||||
OpenAPI_lnode_t *node = NULL;
|
||||
|
||||
if (pdu_session_tsn_bridge == NULL) {
|
||||
ogs_error("OpenAPI_pdu_session_tsn_bridge_convertToJSON() failed [PduSessionTsnBridge]");
|
||||
|
|
@ -48,6 +62,10 @@ cJSON *OpenAPI_pdu_session_tsn_bridge_convertToJSON(OpenAPI_pdu_session_tsn_brid
|
|||
}
|
||||
|
||||
item = cJSON_CreateObject();
|
||||
if (!pdu_session_tsn_bridge->tsn_bridge_info) {
|
||||
ogs_error("OpenAPI_pdu_session_tsn_bridge_convertToJSON() failed [tsn_bridge_info]");
|
||||
return NULL;
|
||||
}
|
||||
cJSON *tsn_bridge_info_local_JSON = OpenAPI_tsn_bridge_info_convertToJSON(pdu_session_tsn_bridge->tsn_bridge_info);
|
||||
if (tsn_bridge_info_local_JSON == NULL) {
|
||||
ogs_error("OpenAPI_pdu_session_tsn_bridge_convertToJSON() failed [tsn_bridge_info]");
|
||||
|
|
@ -91,17 +109,13 @@ cJSON *OpenAPI_pdu_session_tsn_bridge_convertToJSON(OpenAPI_pdu_session_tsn_brid
|
|||
ogs_error("OpenAPI_pdu_session_tsn_bridge_convertToJSON() failed [tsn_port_man_cont_nwtts]");
|
||||
goto end;
|
||||
}
|
||||
|
||||
OpenAPI_lnode_t *tsn_port_man_cont_nwtts_node;
|
||||
if (pdu_session_tsn_bridge->tsn_port_man_cont_nwtts) {
|
||||
OpenAPI_list_for_each(pdu_session_tsn_bridge->tsn_port_man_cont_nwtts, tsn_port_man_cont_nwtts_node) {
|
||||
cJSON *itemLocal = OpenAPI_port_management_container_convertToJSON(tsn_port_man_cont_nwtts_node->data);
|
||||
if (itemLocal == NULL) {
|
||||
ogs_error("OpenAPI_pdu_session_tsn_bridge_convertToJSON() failed [tsn_port_man_cont_nwtts]");
|
||||
goto end;
|
||||
}
|
||||
cJSON_AddItemToArray(tsn_port_man_cont_nwttsList, itemLocal);
|
||||
OpenAPI_list_for_each(pdu_session_tsn_bridge->tsn_port_man_cont_nwtts, node) {
|
||||
cJSON *itemLocal = OpenAPI_port_management_container_convertToJSON(node->data);
|
||||
if (itemLocal == NULL) {
|
||||
ogs_error("OpenAPI_pdu_session_tsn_bridge_convertToJSON() failed [tsn_port_man_cont_nwtts]");
|
||||
goto end;
|
||||
}
|
||||
cJSON_AddItemToArray(tsn_port_man_cont_nwttsList, itemLocal);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -112,56 +126,55 @@ end:
|
|||
OpenAPI_pdu_session_tsn_bridge_t *OpenAPI_pdu_session_tsn_bridge_parseFromJSON(cJSON *pdu_session_tsn_bridgeJSON)
|
||||
{
|
||||
OpenAPI_pdu_session_tsn_bridge_t *pdu_session_tsn_bridge_local_var = NULL;
|
||||
cJSON *tsn_bridge_info = cJSON_GetObjectItemCaseSensitive(pdu_session_tsn_bridgeJSON, "tsnBridgeInfo");
|
||||
OpenAPI_lnode_t *node = NULL;
|
||||
cJSON *tsn_bridge_info = NULL;
|
||||
OpenAPI_tsn_bridge_info_t *tsn_bridge_info_local_nonprim = NULL;
|
||||
cJSON *tsn_bridge_man_cont = NULL;
|
||||
OpenAPI_bridge_management_container_t *tsn_bridge_man_cont_local_nonprim = NULL;
|
||||
cJSON *tsn_port_man_cont_dstt = NULL;
|
||||
OpenAPI_port_management_container_t *tsn_port_man_cont_dstt_local_nonprim = NULL;
|
||||
cJSON *tsn_port_man_cont_nwtts = NULL;
|
||||
OpenAPI_list_t *tsn_port_man_cont_nwttsList = NULL;
|
||||
tsn_bridge_info = cJSON_GetObjectItemCaseSensitive(pdu_session_tsn_bridgeJSON, "tsnBridgeInfo");
|
||||
if (!tsn_bridge_info) {
|
||||
ogs_error("OpenAPI_pdu_session_tsn_bridge_parseFromJSON() failed [tsn_bridge_info]");
|
||||
goto end;
|
||||
}
|
||||
|
||||
OpenAPI_tsn_bridge_info_t *tsn_bridge_info_local_nonprim = NULL;
|
||||
tsn_bridge_info_local_nonprim = OpenAPI_tsn_bridge_info_parseFromJSON(tsn_bridge_info);
|
||||
|
||||
cJSON *tsn_bridge_man_cont = cJSON_GetObjectItemCaseSensitive(pdu_session_tsn_bridgeJSON, "tsnBridgeManCont");
|
||||
|
||||
OpenAPI_bridge_management_container_t *tsn_bridge_man_cont_local_nonprim = NULL;
|
||||
tsn_bridge_man_cont = cJSON_GetObjectItemCaseSensitive(pdu_session_tsn_bridgeJSON, "tsnBridgeManCont");
|
||||
if (tsn_bridge_man_cont) {
|
||||
tsn_bridge_man_cont_local_nonprim = OpenAPI_bridge_management_container_parseFromJSON(tsn_bridge_man_cont);
|
||||
}
|
||||
|
||||
cJSON *tsn_port_man_cont_dstt = cJSON_GetObjectItemCaseSensitive(pdu_session_tsn_bridgeJSON, "tsnPortManContDstt");
|
||||
|
||||
OpenAPI_port_management_container_t *tsn_port_man_cont_dstt_local_nonprim = NULL;
|
||||
tsn_port_man_cont_dstt = cJSON_GetObjectItemCaseSensitive(pdu_session_tsn_bridgeJSON, "tsnPortManContDstt");
|
||||
if (tsn_port_man_cont_dstt) {
|
||||
tsn_port_man_cont_dstt_local_nonprim = OpenAPI_port_management_container_parseFromJSON(tsn_port_man_cont_dstt);
|
||||
}
|
||||
|
||||
cJSON *tsn_port_man_cont_nwtts = cJSON_GetObjectItemCaseSensitive(pdu_session_tsn_bridgeJSON, "tsnPortManContNwtts");
|
||||
|
||||
OpenAPI_list_t *tsn_port_man_cont_nwttsList;
|
||||
tsn_port_man_cont_nwtts = cJSON_GetObjectItemCaseSensitive(pdu_session_tsn_bridgeJSON, "tsnPortManContNwtts");
|
||||
if (tsn_port_man_cont_nwtts) {
|
||||
cJSON *tsn_port_man_cont_nwtts_local_nonprimitive;
|
||||
if (!cJSON_IsArray(tsn_port_man_cont_nwtts)){
|
||||
ogs_error("OpenAPI_pdu_session_tsn_bridge_parseFromJSON() failed [tsn_port_man_cont_nwtts]");
|
||||
goto end;
|
||||
}
|
||||
|
||||
tsn_port_man_cont_nwttsList = OpenAPI_list_create();
|
||||
|
||||
cJSON_ArrayForEach(tsn_port_man_cont_nwtts_local_nonprimitive, tsn_port_man_cont_nwtts ) {
|
||||
if (!cJSON_IsObject(tsn_port_man_cont_nwtts_local_nonprimitive)) {
|
||||
cJSON *tsn_port_man_cont_nwtts_local = NULL;
|
||||
if (!cJSON_IsArray(tsn_port_man_cont_nwtts)) {
|
||||
ogs_error("OpenAPI_pdu_session_tsn_bridge_parseFromJSON() failed [tsn_port_man_cont_nwtts]");
|
||||
goto end;
|
||||
}
|
||||
OpenAPI_port_management_container_t *tsn_port_man_cont_nwttsItem = OpenAPI_port_management_container_parseFromJSON(tsn_port_man_cont_nwtts_local_nonprimitive);
|
||||
|
||||
if (!tsn_port_man_cont_nwttsItem) {
|
||||
ogs_error("No tsn_port_man_cont_nwttsItem");
|
||||
OpenAPI_list_free(tsn_port_man_cont_nwttsList);
|
||||
goto end;
|
||||
tsn_port_man_cont_nwttsList = OpenAPI_list_create();
|
||||
|
||||
cJSON_ArrayForEach(tsn_port_man_cont_nwtts_local, tsn_port_man_cont_nwtts) {
|
||||
if (!cJSON_IsObject(tsn_port_man_cont_nwtts_local)) {
|
||||
ogs_error("OpenAPI_pdu_session_tsn_bridge_parseFromJSON() failed [tsn_port_man_cont_nwtts]");
|
||||
goto end;
|
||||
}
|
||||
OpenAPI_port_management_container_t *tsn_port_man_cont_nwttsItem = OpenAPI_port_management_container_parseFromJSON(tsn_port_man_cont_nwtts_local);
|
||||
if (!tsn_port_man_cont_nwttsItem) {
|
||||
ogs_error("No tsn_port_man_cont_nwttsItem");
|
||||
OpenAPI_list_free(tsn_port_man_cont_nwttsList);
|
||||
goto end;
|
||||
}
|
||||
OpenAPI_list_add(tsn_port_man_cont_nwttsList, tsn_port_man_cont_nwttsItem);
|
||||
}
|
||||
|
||||
OpenAPI_list_add(tsn_port_man_cont_nwttsList, tsn_port_man_cont_nwttsItem);
|
||||
}
|
||||
}
|
||||
|
||||
pdu_session_tsn_bridge_local_var = OpenAPI_pdu_session_tsn_bridge_create (
|
||||
|
|
@ -173,6 +186,25 @@ OpenAPI_pdu_session_tsn_bridge_t *OpenAPI_pdu_session_tsn_bridge_parseFromJSON(c
|
|||
|
||||
return pdu_session_tsn_bridge_local_var;
|
||||
end:
|
||||
if (tsn_bridge_info_local_nonprim) {
|
||||
OpenAPI_tsn_bridge_info_free(tsn_bridge_info_local_nonprim);
|
||||
tsn_bridge_info_local_nonprim = NULL;
|
||||
}
|
||||
if (tsn_bridge_man_cont_local_nonprim) {
|
||||
OpenAPI_bridge_management_container_free(tsn_bridge_man_cont_local_nonprim);
|
||||
tsn_bridge_man_cont_local_nonprim = NULL;
|
||||
}
|
||||
if (tsn_port_man_cont_dstt_local_nonprim) {
|
||||
OpenAPI_port_management_container_free(tsn_port_man_cont_dstt_local_nonprim);
|
||||
tsn_port_man_cont_dstt_local_nonprim = NULL;
|
||||
}
|
||||
if (tsn_port_man_cont_nwttsList) {
|
||||
OpenAPI_list_for_each(tsn_port_man_cont_nwttsList, node) {
|
||||
OpenAPI_port_management_container_free(node->data);
|
||||
}
|
||||
OpenAPI_list_free(tsn_port_man_cont_nwttsList);
|
||||
tsn_port_man_cont_nwttsList = NULL;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue