From a3382f8faa8e883d0ce3f0c61cee3bb98e875236 Mon Sep 17 00:00:00 2001 From: Robert Schmidt Date: Mon, 21 Aug 2023 13:59:51 +0200 Subject: [PATCH] Fix memory leaks in do_RRCSetup() --- openair2/RRC/NR/MESSAGES/asn1_msg.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/openair2/RRC/NR/MESSAGES/asn1_msg.c b/openair2/RRC/NR/MESSAGES/asn1_msg.c index 60d808559b..b913f448b9 100644 --- a/openair2/RRC/NR/MESSAGES/asn1_msg.c +++ b/openair2/RRC/NR/MESSAGES/asn1_msg.c @@ -501,9 +501,6 @@ int do_RRCSetup(rrc_gNB_ue_context_t *const ue_context_pP, memcpy(ie->masterCellGroup.buf, masterCellGroup, masterCellGroup_len); ie->masterCellGroup.size = masterCellGroup_len; - // decode masterCellGroup OCTET_STRING received from DU and place in ue context - ue_p->masterCellGroup = decode_cellGroupConfig(masterCellGroup, masterCellGroup_len); - if (LOG_DEBUGFLAG(DEBUG_ASN1)) { xer_fprint(stdout, &asn_DEF_NR_CellGroupConfig, ue_p->masterCellGroup); xer_fprint(stdout, &asn_DEF_NR_DL_CCCH_Message, (void *)&dl_ccch_msg); @@ -512,6 +509,9 @@ int do_RRCSetup(rrc_gNB_ue_context_t *const ue_context_pP, asn_enc_rval_t enc_rval = uper_encode_to_buffer(&asn_DEF_NR_DL_CCCH_Message, NULL, (void *)&dl_ccch_msg, buffer, 1000); AssertFatal(enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %lu)!\n", enc_rval.failed_type->name, enc_rval.encoded); + // free what we did not allocate ourselves + ie->radioBearerConfig.srb_ToAddModList = NULL; + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_NR_DL_CCCH_Message, &dl_ccch_msg); LOG_D(NR_RRC, "RRCSetup Encoded %zd bits (%zd bytes)\n", enc_rval.encoded, (enc_rval.encoded + 7) / 8); return ((enc_rval.encoded + 7) / 8);