mirror of
https://github.com/open5gs/open5gs.git
synced 2026-05-02 21:30: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
|
|
@ -20,21 +20,29 @@ OpenAPI_sdm_subs_modification_t *OpenAPI_sdm_subs_modification_create(
|
|||
|
||||
void OpenAPI_sdm_subs_modification_free(OpenAPI_sdm_subs_modification_t *sdm_subs_modification)
|
||||
{
|
||||
OpenAPI_lnode_t *node = NULL;
|
||||
|
||||
if (NULL == sdm_subs_modification) {
|
||||
return;
|
||||
}
|
||||
OpenAPI_lnode_t *node;
|
||||
ogs_free(sdm_subs_modification->expires);
|
||||
OpenAPI_list_for_each(sdm_subs_modification->monitored_resource_uris, node) {
|
||||
ogs_free(node->data);
|
||||
if (sdm_subs_modification->expires) {
|
||||
ogs_free(sdm_subs_modification->expires);
|
||||
sdm_subs_modification->expires = NULL;
|
||||
}
|
||||
if (sdm_subs_modification->monitored_resource_uris) {
|
||||
OpenAPI_list_for_each(sdm_subs_modification->monitored_resource_uris, node) {
|
||||
ogs_free(node->data);
|
||||
}
|
||||
OpenAPI_list_free(sdm_subs_modification->monitored_resource_uris);
|
||||
sdm_subs_modification->monitored_resource_uris = NULL;
|
||||
}
|
||||
OpenAPI_list_free(sdm_subs_modification->monitored_resource_uris);
|
||||
ogs_free(sdm_subs_modification);
|
||||
}
|
||||
|
||||
cJSON *OpenAPI_sdm_subs_modification_convertToJSON(OpenAPI_sdm_subs_modification_t *sdm_subs_modification)
|
||||
{
|
||||
cJSON *item = NULL;
|
||||
OpenAPI_lnode_t *node = NULL;
|
||||
|
||||
if (sdm_subs_modification == NULL) {
|
||||
ogs_error("OpenAPI_sdm_subs_modification_convertToJSON() failed [SdmSubsModification]");
|
||||
|
|
@ -50,19 +58,17 @@ cJSON *OpenAPI_sdm_subs_modification_convertToJSON(OpenAPI_sdm_subs_modification
|
|||
}
|
||||
|
||||
if (sdm_subs_modification->monitored_resource_uris) {
|
||||
cJSON *monitored_resource_uris = cJSON_AddArrayToObject(item, "monitoredResourceUris");
|
||||
if (monitored_resource_uris == NULL) {
|
||||
cJSON *monitored_resource_urisList = cJSON_AddArrayToObject(item, "monitoredResourceUris");
|
||||
if (monitored_resource_urisList == NULL) {
|
||||
ogs_error("OpenAPI_sdm_subs_modification_convertToJSON() failed [monitored_resource_uris]");
|
||||
goto end;
|
||||
}
|
||||
|
||||
OpenAPI_lnode_t *monitored_resource_uris_node;
|
||||
OpenAPI_list_for_each(sdm_subs_modification->monitored_resource_uris, monitored_resource_uris_node) {
|
||||
if (cJSON_AddStringToObject(monitored_resource_uris, "", (char*)monitored_resource_uris_node->data) == NULL) {
|
||||
ogs_error("OpenAPI_sdm_subs_modification_convertToJSON() failed [monitored_resource_uris]");
|
||||
goto end;
|
||||
OpenAPI_list_for_each(sdm_subs_modification->monitored_resource_uris, node) {
|
||||
if (cJSON_AddStringToObject(monitored_resource_urisList, "", (char*)node->data) == NULL) {
|
||||
ogs_error("OpenAPI_sdm_subs_modification_convertToJSON() failed [monitored_resource_uris]");
|
||||
goto end;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
end:
|
||||
|
|
@ -72,42 +78,53 @@ end:
|
|||
OpenAPI_sdm_subs_modification_t *OpenAPI_sdm_subs_modification_parseFromJSON(cJSON *sdm_subs_modificationJSON)
|
||||
{
|
||||
OpenAPI_sdm_subs_modification_t *sdm_subs_modification_local_var = NULL;
|
||||
cJSON *expires = cJSON_GetObjectItemCaseSensitive(sdm_subs_modificationJSON, "expires");
|
||||
|
||||
OpenAPI_lnode_t *node = NULL;
|
||||
cJSON *expires = NULL;
|
||||
cJSON *monitored_resource_uris = NULL;
|
||||
OpenAPI_list_t *monitored_resource_urisList = NULL;
|
||||
expires = cJSON_GetObjectItemCaseSensitive(sdm_subs_modificationJSON, "expires");
|
||||
if (expires) {
|
||||
if (!cJSON_IsString(expires)) {
|
||||
if (!cJSON_IsString(expires) && !cJSON_IsNull(expires)) {
|
||||
ogs_error("OpenAPI_sdm_subs_modification_parseFromJSON() failed [expires]");
|
||||
goto end;
|
||||
}
|
||||
}
|
||||
|
||||
cJSON *monitored_resource_uris = cJSON_GetObjectItemCaseSensitive(sdm_subs_modificationJSON, "monitoredResourceUris");
|
||||
|
||||
OpenAPI_list_t *monitored_resource_urisList;
|
||||
monitored_resource_uris = cJSON_GetObjectItemCaseSensitive(sdm_subs_modificationJSON, "monitoredResourceUris");
|
||||
if (monitored_resource_uris) {
|
||||
cJSON *monitored_resource_uris_local;
|
||||
if (!cJSON_IsArray(monitored_resource_uris)) {
|
||||
ogs_error("OpenAPI_sdm_subs_modification_parseFromJSON() failed [monitored_resource_uris]");
|
||||
goto end;
|
||||
}
|
||||
monitored_resource_urisList = OpenAPI_list_create();
|
||||
cJSON *monitored_resource_uris_local = NULL;
|
||||
if (!cJSON_IsArray(monitored_resource_uris)) {
|
||||
ogs_error("OpenAPI_sdm_subs_modification_parseFromJSON() failed [monitored_resource_uris]");
|
||||
goto end;
|
||||
}
|
||||
|
||||
cJSON_ArrayForEach(monitored_resource_uris_local, monitored_resource_uris) {
|
||||
if (!cJSON_IsString(monitored_resource_uris_local)) {
|
||||
ogs_error("OpenAPI_sdm_subs_modification_parseFromJSON() failed [monitored_resource_uris]");
|
||||
goto end;
|
||||
}
|
||||
OpenAPI_list_add(monitored_resource_urisList, ogs_strdup(monitored_resource_uris_local->valuestring));
|
||||
}
|
||||
monitored_resource_urisList = OpenAPI_list_create();
|
||||
|
||||
cJSON_ArrayForEach(monitored_resource_uris_local, monitored_resource_uris) {
|
||||
double *localDouble = NULL;
|
||||
int *localInt = NULL;
|
||||
if (!cJSON_IsString(monitored_resource_uris_local)) {
|
||||
ogs_error("OpenAPI_sdm_subs_modification_parseFromJSON() failed [monitored_resource_uris]");
|
||||
goto end;
|
||||
}
|
||||
OpenAPI_list_add(monitored_resource_urisList, ogs_strdup(monitored_resource_uris_local->valuestring));
|
||||
}
|
||||
}
|
||||
|
||||
sdm_subs_modification_local_var = OpenAPI_sdm_subs_modification_create (
|
||||
expires ? ogs_strdup(expires->valuestring) : NULL,
|
||||
expires && !cJSON_IsNull(expires) ? ogs_strdup(expires->valuestring) : NULL,
|
||||
monitored_resource_uris ? monitored_resource_urisList : NULL
|
||||
);
|
||||
|
||||
return sdm_subs_modification_local_var;
|
||||
end:
|
||||
if (monitored_resource_urisList) {
|
||||
OpenAPI_list_for_each(monitored_resource_urisList, node) {
|
||||
ogs_free(node->data);
|
||||
}
|
||||
OpenAPI_list_free(monitored_resource_urisList);
|
||||
monitored_resource_urisList = NULL;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue