diff --git a/src/mme/mme-fd-path.c b/src/mme/mme-fd-path.c index 6336e3b84..b3ac7d9e9 100644 --- a/src/mme/mme-fd-path.c +++ b/src/mme/mme-fd-path.c @@ -1023,8 +1023,8 @@ static void mme_s6a_ula_cb(void *data, struct msg **msg) OGS_HEX(hdr->avp_value->os.data, (int)hdr->avp_value->os.len, buf), OGS_CHRGCHARS_LEN); session->charging_characteristics_presence = true; } else { - memcpy(session->charging_characteristics, mme_ue->charging_characteristics, OGS_CHRGCHARS_LEN); - session->charging_characteristics_presence = mme_ue->charging_characteristics_presence; + memcpy(session->charging_characteristics, (uint8_t *)"\x00\x00", OGS_CHRGCHARS_LEN); + session->charging_characteristics_presence = false; } /* AVP: 'Served-Party-IP-Address'(848) diff --git a/src/mme/mme-s11-build.c b/src/mme/mme-s11-build.c index 7e142176c..d19e53bd6 100644 --- a/src/mme/mme-s11-build.c +++ b/src/mme/mme-s11-build.c @@ -333,7 +333,11 @@ ogs_pkbuf_t *mme_s11_build_create_session_request( if (session->charging_characteristics_presence == true) { req->charging_characteristics.presence = 1; req->charging_characteristics.data = session->charging_characteristics; - req->charging_characteristics.len = 2; + req->charging_characteristics.len = OGS_CHRGCHARS_LEN; + } else if (mme_ue->charging_characteristics_presence == true) { + req->charging_characteristics.presence = 1; + req->charging_characteristics.data = mme_ue->charging_characteristics; + req->charging_characteristics.len = OGS_CHRGCHARS_LEN; } gtp_message.h.type = type;