diff --git a/lib/sbi/message.c b/lib/sbi/message.c index 04ffe1e8b..7412a293b 100644 --- a/lib/sbi/message.c +++ b/lib/sbi/message.c @@ -1252,29 +1252,41 @@ static int parse_json(ogs_sbi_message_t *message, SWITCH(message->h.resource.component[0]) CASE(OGS_SBI_RESOURCE_NAME_NF_INSTANCES) - message->NFProfile = - OpenAPI_nf_profile_parseFromJSON(item); - if (!message->NFProfile) { - rv = OGS_ERROR; - ogs_error("JSON parse error"); + if (message->res_status < 300) { + message->NFProfile = + OpenAPI_nf_profile_parseFromJSON(item); + if (!message->NFProfile) { + rv = OGS_ERROR; + ogs_error("JSON parse error"); + } + } else { + ogs_error("HTTP ERROR Status : %d", message->res_status); } break; CASE(OGS_SBI_RESOURCE_NAME_SUBSCRIPTIONS) - message->SubscriptionData = - OpenAPI_subscription_data_parseFromJSON(item); - if (!message->SubscriptionData) { - rv = OGS_ERROR; - ogs_error("JSON parse error"); + if (message->res_status < 300) { + message->SubscriptionData = + OpenAPI_subscription_data_parseFromJSON(item); + if (!message->SubscriptionData) { + rv = OGS_ERROR; + ogs_error("JSON parse error"); + } + } else { + ogs_error("HTTP ERROR Status : %d", message->res_status); } break; CASE(OGS_SBI_RESOURCE_NAME_NF_STATUS_NOTIFY) - message->NotificationData = - OpenAPI_notification_data_parseFromJSON(item); - if (!message->NotificationData) { - rv = OGS_ERROR; - ogs_error("JSON parse error"); + if (message->res_status < 300) { + message->NotificationData = + OpenAPI_notification_data_parseFromJSON(item); + if (!message->NotificationData) { + rv = OGS_ERROR; + ogs_error("JSON parse error"); + } + } else { + ogs_error("HTTP ERROR Status : %d", message->res_status); } break; @@ -1288,11 +1300,15 @@ static int parse_json(ogs_sbi_message_t *message, CASE(OGS_SBI_SERVICE_NAME_NNRF_DISC) SWITCH(message->h.resource.component[0]) CASE(OGS_SBI_RESOURCE_NAME_NF_INSTANCES) - message->SearchResult = - OpenAPI_search_result_parseFromJSON(item); - if (!message->SearchResult) { - rv = OGS_ERROR; - ogs_error("JSON parse error"); + if (message->res_status < 300) { + message->SearchResult = + OpenAPI_search_result_parseFromJSON(item); + if (!message->SearchResult) { + rv = OGS_ERROR; + ogs_error("JSON parse error"); + } + } else { + ogs_error("HTTP ERROR Status : %d", message->res_status); } break; @@ -1389,10 +1405,14 @@ static int parse_json(ogs_sbi_message_t *message, break; CASE(OGS_SBI_RESOURCE_NAME_AUTH_EVENTS) - message->AuthEvent = OpenAPI_auth_event_parseFromJSON(item); - if (!message->AuthEvent) { - rv = OGS_ERROR; - ogs_error("JSON parse error"); + if (message->res_status < 300) { + message->AuthEvent = OpenAPI_auth_event_parseFromJSON(item); + if (!message->AuthEvent) { + rv = OGS_ERROR; + ogs_error("JSON parse error"); + } + } else { + ogs_error("HTTP ERROR Status : %d", message->res_status); } break; @@ -1410,7 +1430,8 @@ static int parse_json(ogs_sbi_message_t *message, CASE(OGS_SBI_RESOURCE_NAME_AMF_3GPP_ACCESS) SWITCH(message->h.method) - CASE(OGS_SBI_HTTP_METHOD_PUT) + CASE(OGS_SBI_HTTP_METHOD_PUT) + if (message->res_status < 300) { message->Amf3GppAccessRegistration = OpenAPI_amf3_gpp_access_registration_parseFromJSON( item); @@ -1418,8 +1439,13 @@ static int parse_json(ogs_sbi_message_t *message, rv = OGS_ERROR; ogs_error("JSON parse error"); } - break; - CASE(OGS_SBI_HTTP_METHOD_PATCH) + } else { + ogs_error("HTTP ERROR Status : %d", + message->res_status); + } + break; + CASE(OGS_SBI_HTTP_METHOD_PATCH) + if (message->res_status < 300) { message->Amf3GppAccessRegistrationModification = OpenAPI_amf3_gpp_access_registration_modification_parseFromJSON( item); @@ -1427,11 +1453,15 @@ static int parse_json(ogs_sbi_message_t *message, rv = OGS_ERROR; ogs_error("JSON parse error"); } - break; - DEFAULT - rv = OGS_ERROR; - ogs_error("Unknown method [%s]", message->h.method); - END + } else { + ogs_error("HTTP ERROR Status : %d", + message->res_status); + } + break; + DEFAULT + rv = OGS_ERROR; + ogs_error("Unknown method [%s]", message->h.method); + END break; DEFAULT rv = OGS_ERROR; @@ -1450,57 +1480,80 @@ static int parse_json(ogs_sbi_message_t *message, CASE(OGS_SBI_SERVICE_NAME_NUDM_SDM) SWITCH(message->h.resource.component[1]) CASE(OGS_SBI_RESOURCE_NAME_AM_DATA) - message->AccessAndMobilitySubscriptionData = - OpenAPI_access_and_mobility_subscription_data_parseFromJSON( - item); - if (!message->AccessAndMobilitySubscriptionData) { - rv = OGS_ERROR; - ogs_error("JSON parse error"); + if (message->res_status < 300) { + message->AccessAndMobilitySubscriptionData = + OpenAPI_access_and_mobility_subscription_data_parseFromJSON( + item); + if (!message->AccessAndMobilitySubscriptionData) { + rv = OGS_ERROR; + ogs_error("JSON parse error"); + } + } else { + ogs_error("HTTP ERROR Status : %d", message->res_status); } break; CASE(OGS_SBI_RESOURCE_NAME_SMF_SELECT_DATA) - message->SmfSelectionSubscriptionData = - OpenAPI_smf_selection_subscription_data_parseFromJSON(item); - if (!message->SmfSelectionSubscriptionData) { - rv = OGS_ERROR; - ogs_error("JSON parse error"); + if (message->res_status < 300) { + message->SmfSelectionSubscriptionData = + OpenAPI_smf_selection_subscription_data_parseFromJSON( + item); + if (!message->SmfSelectionSubscriptionData) { + rv = OGS_ERROR; + ogs_error("JSON parse error"); + } + } else { + ogs_error("HTTP ERROR Status : %d", message->res_status); } break; CASE(OGS_SBI_RESOURCE_NAME_UE_CONTEXT_IN_SMF_DATA) - message->UeContextInSmfData = - OpenAPI_ue_context_in_smf_data_parseFromJSON(item); - if (!message->UeContextInSmfData) { - rv = OGS_ERROR; - ogs_error("JSON parse error"); + if (message->res_status < 300) { + message->UeContextInSmfData = + OpenAPI_ue_context_in_smf_data_parseFromJSON(item); + if (!message->UeContextInSmfData) { + rv = OGS_ERROR; + ogs_error("JSON parse error"); + } + } else { + ogs_error("HTTP ERROR Status : %d", message->res_status); } break; CASE(OGS_SBI_RESOURCE_NAME_SM_DATA) - if (item) { - OpenAPI_session_management_subscription_data_t *smsub_item = NULL; - cJSON *smsubJSON = NULL; - message->SessionManagementSubscriptionDataList = OpenAPI_list_create(); - cJSON_ArrayForEach(smsubJSON, item) { - if (!cJSON_IsObject(smsubJSON)) { - rv = OGS_ERROR; - ogs_error("Unknown JSON"); - goto cleanup; - } + if (message->res_status < 300) { + if (item) { + OpenAPI_session_management_subscription_data_t + *smsub_item = NULL; + cJSON *smsubJSON = NULL; + message->SessionManagementSubscriptionDataList = + OpenAPI_list_create(); + cJSON_ArrayForEach(smsubJSON, item) { + if (!cJSON_IsObject(smsubJSON)) { + rv = OGS_ERROR; + ogs_error("Unknown JSON"); + goto cleanup; + } - smsub_item = OpenAPI_session_management_subscription_data_parseFromJSON(smsubJSON); - OpenAPI_list_add(message->SessionManagementSubscriptionDataList, smsub_item); + smsub_item = OpenAPI_session_management_subscription_data_parseFromJSON(smsubJSON); + OpenAPI_list_add(message->SessionManagementSubscriptionDataList, smsub_item); + } } + } else { + ogs_error("HTTP ERROR Status : %d", message->res_status); } break; CASE(OGS_SBI_RESOURCE_NAME_SDM_SUBSCRIPTIONS) - message->SDMSubscription = - OpenAPI_sdm_subscription_parseFromJSON(item); - if (!message->SDMSubscription) { - rv = OGS_ERROR; - ogs_error("JSON parse error"); + if (message->res_status < 300) { + message->SDMSubscription = + OpenAPI_sdm_subscription_parseFromJSON(item); + if (!message->SDMSubscription) { + rv = OGS_ERROR; + ogs_error("JSON parse error"); + } + } else { + ogs_error("HTTP ERROR Status : %d", message->res_status); } break; @@ -1528,11 +1581,16 @@ static int parse_json(ogs_sbi_message_t *message, } break; CASE(OGS_SBI_RESOURCE_NAME_AUTHENTICATION_STATUS) - message->AuthEvent = - OpenAPI_auth_event_parseFromJSON(item); - if (!message->AuthEvent) { - rv = OGS_ERROR; - ogs_error("JSON parse error"); + if (message->res_status < 300) { + message->AuthEvent = + OpenAPI_auth_event_parseFromJSON(item); + if (!message->AuthEvent) { + rv = OGS_ERROR; + ogs_error("JSON parse error"); + } + } else { + ogs_error("HTTP ERROR Status : %d", + message->res_status); } break; DEFAULT @@ -1543,12 +1601,17 @@ static int parse_json(ogs_sbi_message_t *message, break; CASE(OGS_SBI_RESOURCE_NAME_CONTEXT_DATA) - message->Amf3GppAccessRegistration = - OpenAPI_amf3_gpp_access_registration_parseFromJSON( - item); - if (!message->Amf3GppAccessRegistration) { - rv = OGS_ERROR; - ogs_error("JSON parse error"); + if (message->res_status < 300) { + message->Amf3GppAccessRegistration = + OpenAPI_amf3_gpp_access_registration_parseFromJSON( + item); + if (!message->Amf3GppAccessRegistration) { + rv = OGS_ERROR; + ogs_error("JSON parse error"); + } + } else { + ogs_error("HTTP ERROR Status : %d", + message->res_status); } break; @@ -1557,48 +1620,69 @@ static int parse_json(ogs_sbi_message_t *message, CASE(OGS_SBI_RESOURCE_NAME_PROVISIONED_DATA) SWITCH(message->h.resource.component[4]) CASE(OGS_SBI_RESOURCE_NAME_AM_DATA) - message->AccessAndMobilitySubscriptionData = - OpenAPI_access_and_mobility_subscription_data_parseFromJSON(item); - if (!message->AccessAndMobilitySubscriptionData) { - rv = OGS_ERROR; - ogs_error("JSON parse error"); + if (message->res_status < 300) { + message->AccessAndMobilitySubscriptionData = + OpenAPI_access_and_mobility_subscription_data_parseFromJSON(item); + if (!message-> + AccessAndMobilitySubscriptionData) { + rv = OGS_ERROR; + ogs_error("JSON parse error"); + } + } else { + ogs_error("HTTP ERROR Status : %d", + message->res_status); } break; CASE(OGS_SBI_RESOURCE_NAME_SMF_SELECTION_SUBSCRIPTION_DATA) - message->SmfSelectionSubscriptionData = - OpenAPI_smf_selection_subscription_data_parseFromJSON(item); - if (!message->SmfSelectionSubscriptionData) { - rv = OGS_ERROR; - ogs_error("JSON parse error"); + if (message->res_status < 300) { + message->SmfSelectionSubscriptionData = + OpenAPI_smf_selection_subscription_data_parseFromJSON(item); + if (!message->SmfSelectionSubscriptionData) { + rv = OGS_ERROR; + ogs_error("JSON parse error"); + } + } else { + ogs_error("HTTP ERROR Status : %d", + message->res_status); } break; CASE(OGS_SBI_RESOURCE_NAME_UE_CONTEXT_IN_SMF_DATA) - message->UeContextInSmfData = - OpenAPI_ue_context_in_smf_data_parseFromJSON( - item); - if (!message->UeContextInSmfData) { - rv = OGS_ERROR; - ogs_error("JSON parse error"); + if (message->res_status < 300) { + message->UeContextInSmfData = + OpenAPI_ue_context_in_smf_data_parseFromJSON( + item); + if (!message->UeContextInSmfData) { + rv = OGS_ERROR; + ogs_error("JSON parse error"); + } + } else { + ogs_error("HTTP ERROR Status : %d", + message->res_status); } break; CASE(OGS_SBI_RESOURCE_NAME_SM_DATA) - if (item) { - OpenAPI_session_management_subscription_data_t *smsub_item = NULL; - cJSON *smsubJSON = NULL; - message->SessionManagementSubscriptionDataList = OpenAPI_list_create(); - cJSON_ArrayForEach(smsubJSON, item) { - if (!cJSON_IsObject(smsubJSON)) { - rv = OGS_ERROR; - ogs_error("Unknown JSON"); - goto cleanup; - } + if (message->res_status < 300) { + if (item) { + OpenAPI_session_management_subscription_data_t *smsub_item = NULL; + cJSON *smsubJSON = NULL; + message->SessionManagementSubscriptionDataList = OpenAPI_list_create(); + cJSON_ArrayForEach(smsubJSON, item) { + if (!cJSON_IsObject(smsubJSON)) { + rv = OGS_ERROR; + ogs_error("Unknown JSON"); + goto cleanup; + } - smsub_item = OpenAPI_session_management_subscription_data_parseFromJSON(smsubJSON); - OpenAPI_list_add(message->SessionManagementSubscriptionDataList, smsub_item); + smsub_item = OpenAPI_session_management_subscription_data_parseFromJSON(smsubJSON); + OpenAPI_list_add(message->SessionManagementSubscriptionDataList, smsub_item); + } } + } else { + ogs_error("HTTP ERROR Status : %d", + message->res_status); } break; @@ -1622,22 +1706,30 @@ static int parse_json(ogs_sbi_message_t *message, CASE(OGS_SBI_RESOURCE_NAME_UES) SWITCH(message->h.resource.component[3]) CASE(OGS_SBI_RESOURCE_NAME_AM_DATA) - - message->AmPolicyData = - OpenAPI_am_policy_data_parseFromJSON(item); - if (!message->AmPolicyData) { - rv = OGS_ERROR; - ogs_error("JSON parse error"); + if (message->res_status < 300) { + message->AmPolicyData = + OpenAPI_am_policy_data_parseFromJSON(item); + if (!message->AmPolicyData) { + rv = OGS_ERROR; + ogs_error("JSON parse error"); + } + } else { + ogs_error("HTTP ERROR Status : %d", + message->res_status); } break; CASE(OGS_SBI_RESOURCE_NAME_SM_DATA) - - message->SmPolicyData = - OpenAPI_sm_policy_data_parseFromJSON(item); - if (!message->SmPolicyData) { - rv = OGS_ERROR; - ogs_error("JSON parse error"); + if (message->res_status < 300) { + message->SmPolicyData = + OpenAPI_sm_policy_data_parseFromJSON(item); + if (!message->SmPolicyData) { + rv = OGS_ERROR; + ogs_error("JSON parse error"); + } + } else { + ogs_error("HTTP ERROR Status : %d", + message->res_status); } break; @@ -1988,11 +2080,16 @@ static int parse_json(ogs_sbi_message_t *message, } else { SWITCH(message->h.method) CASE(OGS_SBI_HTTP_METHOD_PATCH) - message->AppSessionContextUpdateDataPatch = - OpenAPI_app_session_context_update_data_patch_parseFromJSON(item); - if (!message->AppSessionContextUpdateDataPatch) { - rv = OGS_ERROR; - ogs_error("JSON parse error"); + if (message->res_status < 300) { + message->AppSessionContextUpdateDataPatch = + OpenAPI_app_session_context_update_data_patch_parseFromJSON(item); + if (!message->AppSessionContextUpdateDataPatch) { + rv = OGS_ERROR; + ogs_error("JSON parse error"); + } + } else { + ogs_error("HTTP ERROR Status : %d", + message->res_status); } break; DEFAULT @@ -2030,29 +2127,42 @@ static int parse_json(ogs_sbi_message_t *message, CASE(OGS_SBI_SERVICE_NAME_NAMF_CALLBACK) SWITCH(message->h.resource.component[1]) CASE(OGS_SBI_RESOURCE_NAME_SM_CONTEXT_STATUS) - message->SmContextStatusNotification = - OpenAPI_sm_context_status_notification_parseFromJSON(item); - if (!message->SmContextStatusNotification) { - rv = OGS_ERROR; - ogs_error("JSON parse error"); + if (message->res_status < 300) { + message->SmContextStatusNotification = + OpenAPI_sm_context_status_notification_parseFromJSON( + item); + if (!message->SmContextStatusNotification) { + rv = OGS_ERROR; + ogs_error("JSON parse error"); + } + } else { + ogs_error("HTTP ERROR Status : %d", message->res_status); } break; CASE(OGS_SBI_RESOURCE_NAME_DEREG_NOTIFY) - message->DeregistrationData = - OpenAPI_deregistration_data_parseFromJSON(item); - if (!message->DeregistrationData) { - rv = OGS_ERROR; - ogs_error("JSON parse error"); + if (message->res_status < 300) { + message->DeregistrationData = + OpenAPI_deregistration_data_parseFromJSON(item); + if (!message->DeregistrationData) { + rv = OGS_ERROR; + ogs_error("JSON parse error"); + } + } else { + ogs_error("HTTP ERROR Status : %d", message->res_status); } break; CASE(OGS_SBI_RESOURCE_NAME_SDMSUBSCRIPTION_NOTIFY) - message->ModificationNotification = - OpenAPI_modification_notification_parseFromJSON(item); - if (!message->ModificationNotification) { - rv = OGS_ERROR; - ogs_error("JSON parse error"); + if (message->res_status < 300) { + message->ModificationNotification = + OpenAPI_modification_notification_parseFromJSON(item); + if (!message->ModificationNotification) { + rv = OGS_ERROR; + ogs_error("JSON parse error"); + } + } else { + ogs_error("HTTP ERROR Status : %d", message->res_status); } break; @@ -2066,31 +2176,45 @@ static int parse_json(ogs_sbi_message_t *message, CASE(OGS_SBI_SERVICE_NAME_NSMF_CALLBACK) SWITCH(message->h.resource.component[0]) CASE(OGS_SBI_RESOURCE_NAME_N1_N2_FAILURE_NOTIFY) - message->N1N2MsgTxfrFailureNotification = - OpenAPI_n1_n2_msg_txfr_failure_notification_parseFromJSON( - item); - if (!message->N1N2MsgTxfrFailureNotification) { - rv = OGS_ERROR; - ogs_error("JSON parse error"); + if (message->res_status < 300) { + message->N1N2MsgTxfrFailureNotification = + OpenAPI_n1_n2_msg_txfr_failure_notification_parseFromJSON( + item); + if (!message->N1N2MsgTxfrFailureNotification) { + rv = OGS_ERROR; + ogs_error("JSON parse error"); + } + } else { + ogs_error("HTTP ERROR Status : %d", message->res_status); } break; CASE(OGS_SBI_RESOURCE_NAME_SM_POLICY_NOTIFY) SWITCH(message->h.resource.component[2]) CASE(OGS_SBI_RESOURCE_NAME_UPDATE) - message->SmPolicyNotification = - OpenAPI_sm_policy_notification_parseFromJSON(item); - if (!message->SmPolicyNotification) { - rv = OGS_ERROR; - ogs_error("JSON parse error"); + if (message->res_status < 300) { + message->SmPolicyNotification = + OpenAPI_sm_policy_notification_parseFromJSON(item); + if (!message->SmPolicyNotification) { + rv = OGS_ERROR; + ogs_error("JSON parse error"); + } + } else { + ogs_error("HTTP ERROR Status : %d", + message->res_status); } break; CASE(OGS_SBI_RESOURCE_NAME_TERMINATE) - message->TerminationNotification = - OpenAPI_termination_notification_parseFromJSON(item); - if (!message->TerminationNotification) { - rv = OGS_ERROR; - ogs_error("JSON parse error"); + if (message->res_status < 300) { + message->TerminationNotification = + OpenAPI_termination_notification_parseFromJSON(item); + if (!message->TerminationNotification) { + rv = OGS_ERROR; + ogs_error("JSON parse error"); + } + } else { + ogs_error("HTTP ERROR Status : %d", + message->res_status); } break; diff --git a/src/amf/gmm-sm.c b/src/amf/gmm-sm.c index ab1e404d5..5e43e88f6 100644 --- a/src/amf/gmm-sm.c +++ b/src/amf/gmm-sm.c @@ -181,7 +181,6 @@ void gmm_state_de_registered(ogs_fsm_t *s, amf_event_t *e) ogs_error("[%s] HTTP response error [%d]", amf_ue->suci, sbi_message->res_status); } - break; } SWITCH(sbi_message->h.method) @@ -222,7 +221,6 @@ void gmm_state_de_registered(ogs_fsm_t *s, amf_event_t *e) (sbi_message->res_status != OGS_SBI_HTTP_STATUS_NO_CONTENT)) { ogs_error("[%s] HTTP response error [%d]", amf_ue->supi, sbi_message->res_status); - break; } SWITCH(sbi_message->h.resource.component[1]) @@ -292,7 +290,6 @@ void gmm_state_de_registered(ogs_fsm_t *s, amf_event_t *e) sbi_message->res_status != OGS_SBI_HTTP_STATUS_OK) { ogs_error("[%s] HTTP response error [%d]", amf_ue->supi, sbi_message->res_status); - break; } SWITCH(sbi_message->h.resource.component[1]) @@ -663,7 +660,6 @@ void gmm_state_registered(ogs_fsm_t *s, amf_event_t *e) ogs_error("[%s] HTTP response error [%d]", amf_ue->suci, sbi_message->res_status); } - break; } SWITCH(sbi_message->h.method) @@ -704,7 +700,6 @@ void gmm_state_registered(ogs_fsm_t *s, amf_event_t *e) (sbi_message->res_status != OGS_SBI_HTTP_STATUS_NO_CONTENT)) { ogs_error("[%s] HTTP response error [%d]", amf_ue->supi, sbi_message->res_status); - break; } SWITCH(sbi_message->h.resource.component[1]) @@ -780,7 +775,6 @@ void gmm_state_registered(ogs_fsm_t *s, amf_event_t *e) sbi_message->res_status != OGS_SBI_HTTP_STATUS_OK) { ogs_error("[%s] HTTP response error [%d]", amf_ue->supi, sbi_message->res_status); - break; } SWITCH(sbi_message->h.resource.component[1]) diff --git a/src/amf/namf-handler.c b/src/amf/namf-handler.c index 5372028fa..231f51a07 100644 --- a/src/amf/namf-handler.c +++ b/src/amf/namf-handler.c @@ -927,7 +927,8 @@ int amf_namf_callback_handle_sdm_data_change_notify( if (CM_CONNECTED(amf_ue)) { r = nas_5gs_send_de_registration_request( amf_ue, - OpenAPI_deregistration_reason_REREGISTRATION_REQUIRED, 0); + OpenAPI_deregistration_reason_REREGISTRATION_REQUIRED, + OGS_5GMM_CAUSE_5GS_SERVICES_NOT_ALLOWED); ogs_expect(r == OGS_OK); ogs_assert(r != OGS_ERROR); diff --git a/src/udm/nudm-handler.c b/src/udm/nudm-handler.c index 731b3fb41..18d5b56bb 100644 --- a/src/udm/nudm-handler.c +++ b/src/udm/nudm-handler.c @@ -421,10 +421,11 @@ bool udm_nudm_uecm_handle_registration_update( ogs_assert(true == ogs_sbi_server_send_error(stream, OGS_SBI_HTTP_STATUS_FORBIDDEN, message, "Guami mismatch", udm_ue->supi)); + return false; } - if (Amf3GppAccessRegistrationModification->is_purge_flag) { + ogs_assert(udm_ue->amf_3gpp_access_registration); udm_ue->amf_3gpp_access_registration->is_purge_flag = Amf3GppAccessRegistrationModification->is_purge_flag; udm_ue->amf_3gpp_access_registration->purge_flag = @@ -434,7 +435,6 @@ bool udm_nudm_uecm_handle_registration_update( PatchItemList = OpenAPI_list_create(); ogs_assert(PatchItemList); - if (Amf3GppAccessRegistrationModification->is_purge_flag) { memset(&item, 0, sizeof(item)); item.op = OpenAPI_patch_operation_replace;