[SBI] Fix possible crash when handling PatchItems in NFProfile PATCH req

This commit is contained in:
Bostjan Meglic 2023-02-15 07:14:31 +00:00 committed by Sukchan Lee
parent cef5b38087
commit dfcd3431c3
1 changed files with 9 additions and 8 deletions

View File

@ -1211,9 +1211,9 @@ ogs_sbi_request_t *ogs_nnrf_nfm_build_update(void)
ogs_sbi_message_t message; ogs_sbi_message_t message;
ogs_sbi_request_t *request = NULL; ogs_sbi_request_t *request = NULL;
OpenAPI_list_t *PatchItemList; OpenAPI_list_t *PatchItemList = NULL;
OpenAPI_patch_item_t StatusItem; OpenAPI_patch_item_t StatusItem = { 0 };
OpenAPI_patch_item_t LoadItem; OpenAPI_patch_item_t LoadItem = { 0 };
nf_instance = ogs_sbi_self()->nf_instance; nf_instance = ogs_sbi_self()->nf_instance;
ogs_assert(nf_instance); ogs_assert(nf_instance);
@ -1235,7 +1235,6 @@ ogs_sbi_request_t *ogs_nnrf_nfm_build_update(void)
goto end; goto end;
} }
memset(&StatusItem, 0, sizeof(StatusItem));
StatusItem.op = OpenAPI_patch_operation_replace; StatusItem.op = OpenAPI_patch_operation_replace;
StatusItem.path = (char *)"/nfStatus"; StatusItem.path = (char *)"/nfStatus";
StatusItem.value = OpenAPI_any_type_create_string( StatusItem.value = OpenAPI_any_type_create_string(
@ -1247,7 +1246,6 @@ ogs_sbi_request_t *ogs_nnrf_nfm_build_update(void)
OpenAPI_list_add(PatchItemList, &StatusItem); OpenAPI_list_add(PatchItemList, &StatusItem);
memset(&LoadItem, 0, sizeof(LoadItem));
LoadItem.op = OpenAPI_patch_operation_replace; LoadItem.op = OpenAPI_patch_operation_replace;
LoadItem.path = (char *)"/load"; LoadItem.path = (char *)"/load";
LoadItem.value = OpenAPI_any_type_create_number(ogs_sbi_self()->nf_instance->load); LoadItem.value = OpenAPI_any_type_create_number(ogs_sbi_self()->nf_instance->load);
@ -1264,9 +1262,12 @@ ogs_sbi_request_t *ogs_nnrf_nfm_build_update(void)
ogs_expect(request); ogs_expect(request);
end: end:
OpenAPI_list_free(PatchItemList); if (LoadItem.value)
OpenAPI_any_type_free(StatusItem.value); OpenAPI_any_type_free(LoadItem.value);
OpenAPI_any_type_free(LoadItem.value); if (StatusItem.value)
OpenAPI_any_type_free(StatusItem.value);
if (PatchItemList)
OpenAPI_list_free(PatchItemList);
return request; return request;
} }