[AMF/AMF] Not assert for ogs_asn_copy_ie() (#2018)

Does not raise an assertion even if open5gs cannot handle the ASN in
ogs_asn_copy_ie()
This commit is contained in:
Sukchan Lee 2023-01-25 23:16:59 +09:00
parent 3715b9ece3
commit 85981effc7
6 changed files with 31 additions and 11 deletions

View File

@ -1907,7 +1907,11 @@ ogs_pkbuf_t *ngap_build_downlink_ran_configuration_transfer(
rv = ogs_asn_copy_ie(&asn_DEF_NGAP_SONConfigurationTransfer,
transfer, SONConfigurationTransfer);
ogs_assert(rv == OGS_OK);
if (rv != OGS_OK) {
ogs_error("ogs_asn_copy_ie() failed");
ogs_asn_free(&asn_DEF_NGAP_NGAP_PDU, &pdu);
return NULL;
}
return ogs_ngap_encode(&pdu);
}
@ -2647,7 +2651,7 @@ ogs_pkbuf_t *ngap_build_handover_cancel_ack(ran_ue_t *source_ue)
return ogs_ngap_encode(&pdu);
}
ogs_pkbuf_t *ngap_build_uplink_ran_status_transfer(
ogs_pkbuf_t *ngap_build_downlink_ran_status_transfer(
ran_ue_t *target_ue,
NGAP_RANStatusTransfer_TransparentContainer_t *transfer)
{
@ -2722,7 +2726,11 @@ ogs_pkbuf_t *ngap_build_uplink_ran_status_transfer(
rv = ogs_asn_copy_ie(
&asn_DEF_NGAP_RANStatusTransfer_TransparentContainer,
transfer, RANStatusTransfer_TransparentContainer);
ogs_assert(rv == OGS_OK);
if (rv != OGS_OK) {
ogs_error("ogs_asn_copy_ie() failed");
ogs_asn_free(&asn_DEF_NGAP_NGAP_PDU, &pdu);
return NULL;
}
return ogs_ngap_encode(&pdu);
}

View File

@ -68,7 +68,7 @@ ogs_pkbuf_t *ngap_build_handover_preparation_failure(
ogs_pkbuf_t *ngap_build_handover_command(ran_ue_t *source_ue);
ogs_pkbuf_t *ngap_build_handover_cancel_ack(ran_ue_t *source_ue);
ogs_pkbuf_t *ngap_build_uplink_ran_status_transfer(
ogs_pkbuf_t *ngap_build_downlink_ran_status_transfer(
ran_ue_t *target_ue,
NGAP_RANStatusTransfer_TransparentContainer_t *transfer);

View File

@ -2565,7 +2565,8 @@ void ngap_handle_uplink_ran_configuration_transfer(
r = ngap_send_downlink_ran_configuration_transfer(
target_gnb, SONConfigurationTransfer);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
/* ogs_asn_copy_ie() could be failed from received packet.
* So we should not use ogs_assert(r != OGS_ERROR).*/
}
}
@ -3840,7 +3841,8 @@ void ngap_handle_uplink_ran_status_transfer(
r = ngap_send_downlink_ran_status_transfer(
target_ue, RANStatusTransfer_TransparentContainer);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
/* ogs_asn_copy_ie() could be failed from received packet.
* So we should not use ogs_assert(r != OGS_ERROR).*/
}
void ngap_handle_handover_notification(

View File

@ -573,7 +573,7 @@ int ngap_send_downlink_ran_status_transfer(
ogs_assert(target_ue);
ogs_assert(transfer);
ngapbuf = ngap_build_uplink_ran_status_transfer(target_ue, transfer);
ngapbuf = ngap_build_downlink_ran_status_transfer(target_ue, transfer);
if (!ngapbuf) {
ogs_error("ngap_build_uplink_ran_status_transfer() failed");
return OGS_ERROR;

View File

@ -1551,7 +1551,11 @@ ogs_pkbuf_t *s1ap_build_mme_configuration_transfer(
rv = ogs_asn_copy_ie(&asn_DEF_S1AP_SONConfigurationTransfer,
son_configuration_transfer, SONConfigurationTransfer);
ogs_assert(rv == OGS_OK);
if (rv != OGS_OK) {
ogs_error("ogs_asn_copy_ie() failed");
ogs_asn_free(&asn_DEF_S1AP_S1AP_PDU, &pdu);
return NULL;
}
return ogs_s1ap_encode(&pdu);
}
@ -2371,7 +2375,11 @@ ogs_pkbuf_t *s1ap_build_mme_status_transfer(
&asn_DEF_S1AP_ENB_StatusTransfer_TransparentContainer,
enb_statustransfer_transparentContainer,
ENB_StatusTransfer_TransparentContainer);
ogs_assert(rv == OGS_OK);
if (rv != OGS_OK) {
ogs_error("ogs_asn_copy_ie() failed");
ogs_asn_free(&asn_DEF_S1AP_S1AP_PDU, &pdu);
return NULL;
}
return ogs_s1ap_encode(&pdu);
}

View File

@ -2218,7 +2218,8 @@ void s1ap_handle_enb_configuration_transfer(
r = s1ap_send_mme_configuration_transfer(
target_enb, SONConfigurationTransfer);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
/* ogs_asn_copy_ie() could be failed from received packet.
* So we should not use ogs_assert(r != OGS_ERROR).*/
}
}
@ -2957,7 +2958,8 @@ void s1ap_handle_enb_status_transfer(
r = s1ap_send_mme_status_transfer(target_ue,
ENB_StatusTransfer_TransparentContainer);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
/* ogs_asn_copy_ie() could be failed from received packet.
* So we should not use ogs_assert(r != OGS_ERROR).*/
}
void s1ap_handle_handover_notification(