Flexran-triggered RRC Reconf: free memory of mac_MainConfig after setting new, do not free new memory
This commit is contained in:
+15
-10
@@ -3836,7 +3836,6 @@ flexran_rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt
|
|||||||
/* MAC Main Config */
|
/* MAC Main Config */
|
||||||
// The different parts of MAC main config are set below
|
// The different parts of MAC main config are set below
|
||||||
mac_MainConfig = CALLOC(1, sizeof(*mac_MainConfig));
|
mac_MainConfig = CALLOC(1, sizeof(*mac_MainConfig));
|
||||||
ue_context_pP->ue_context.mac_MainConfig = mac_MainConfig;
|
|
||||||
mac_MainConfig->ul_SCH_Config = CALLOC(1, sizeof(*mac_MainConfig->ul_SCH_Config));
|
mac_MainConfig->ul_SCH_Config = CALLOC(1, sizeof(*mac_MainConfig->ul_SCH_Config));
|
||||||
maxHARQ_Tx = CALLOC(1, sizeof(long));
|
maxHARQ_Tx = CALLOC(1, sizeof(long));
|
||||||
*maxHARQ_Tx = LTE_MAC_MainConfig__ul_SCH_Config__maxHARQ_Tx_n5;
|
*maxHARQ_Tx = LTE_MAC_MainConfig__ul_SCH_Config__maxHARQ_Tx_n5;
|
||||||
@@ -3904,6 +3903,21 @@ flexran_rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt
|
|||||||
mac_MainConfig->ext1->sr_ProhibitTimer_r9 = sr_ProhibitTimer_r9;
|
mac_MainConfig->ext1->sr_ProhibitTimer_r9 = sr_ProhibitTimer_r9;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// free the old LTE_MAC_MainConfig_t: get a pointer to "old" memory, assign
|
||||||
|
// the new values in the ue_context, then free it
|
||||||
|
// Note: can not completely avoid race condition with FlexRAN
|
||||||
|
LTE_MAC_MainConfig_t *old_mac_MainConfig = ue_context_pP->ue_context.mac_MainConfig;
|
||||||
|
ue_context_pP->ue_context.mac_MainConfig = mac_MainConfig;
|
||||||
|
free(old_mac_MainConfig->ul_SCH_Config->periodicBSR_Timer);
|
||||||
|
free(old_mac_MainConfig->ul_SCH_Config->maxHARQ_Tx);
|
||||||
|
free(old_mac_MainConfig->ul_SCH_Config);
|
||||||
|
free(old_mac_MainConfig->phr_Config);
|
||||||
|
#if (LTE_RRC_VERSION >= MAKE_VERSION(9, 0, 0))
|
||||||
|
free(old_mac_MainConfig->ext1->sr_ProhibitTimer_r9);
|
||||||
|
free(old_mac_MainConfig->ext1);
|
||||||
|
#endif
|
||||||
|
free(old_mac_MainConfig);
|
||||||
|
|
||||||
// change the transmission mode for the primary component carrier
|
// change the transmission mode for the primary component carrier
|
||||||
// TODO: add codebook subset restriction here
|
// TODO: add codebook subset restriction here
|
||||||
// TODO: change TM for secondary CC in SCelltoaddmodlist
|
// TODO: change TM for secondary CC in SCelltoaddmodlist
|
||||||
@@ -4308,15 +4322,6 @@ flexran_rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt
|
|||||||
|
|
||||||
free(quantityConfig);
|
free(quantityConfig);
|
||||||
quantityConfig = NULL;
|
quantityConfig = NULL;
|
||||||
|
|
||||||
free(mac_MainConfig->ul_SCH_Config);
|
|
||||||
mac_MainConfig->ul_SCH_Config = NULL;
|
|
||||||
|
|
||||||
free(mac_MainConfig->phr_Config);
|
|
||||||
mac_MainConfig->phr_Config = NULL;
|
|
||||||
|
|
||||||
free(mac_MainConfig);
|
|
||||||
mac_MainConfig = NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|||||||
Reference in New Issue
Block a user