diff --git a/openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac.c b/openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac.c
index d3c9f8d3000d990f1552746f414087e4d091c04d..97c3b0b3f0b48c2ff32ad2d9d63fb0f940266fd9 100644
--- a/openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac.c
+++ b/openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac.c
@@ -1041,11 +1041,17 @@ int flexran_agent_mac_sf_trigger(mid_t mod_id, const void *params, Protocol__Fle
   if (header != NULL)
     free(header);
   if (sf_trigger_msg != NULL) {
-    for (i = 0; i < sf_trigger_msg->n_dl_info; i++) {
-      free(sf_trigger_msg->dl_info[i]->harq_status);
-      free(sf_trigger_msg->dl_info[i]);
+    if (sf_trigger_msg->dl_info != NULL) {
+      for (i = 0; i < sf_trigger_msg->n_dl_info; i++) {
+        if (sf_trigger_msg->dl_info[i] != NULL) {
+          if (sf_trigger_msg->dl_info[i]->harq_status != NULL) {
+            free(sf_trigger_msg->dl_info[i]->harq_status);
+          }
+          free(sf_trigger_msg->dl_info[i]);
+        }
+      }
+      free(sf_trigger_msg->dl_info);
     }
-    free(sf_trigger_msg->dl_info);
     if (sf_trigger_msg->ul_info != NULL) {
       for (i = 0; i < sf_trigger_msg->n_ul_info; i++) {
         if (sf_trigger_msg->ul_info[i] != NULL) {