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 badf182e5dfa32bcf29697e93ba8e6e7d04aa3ce..d3c9f8d3000d990f1552746f414087e4d091c04d 100644
--- a/openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac.c
+++ b/openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac.c
@@ -1045,11 +1045,18 @@ int flexran_agent_mac_sf_trigger(mid_t mod_id, const void *params, Protocol__Fle
       free(sf_trigger_msg->dl_info[i]->harq_status);
       free(sf_trigger_msg->dl_info[i]);
     }
-    for (i = 0; i < sf_trigger_msg->n_ul_info; i++) {
-      free(sf_trigger_msg->ul_info[i]);
-    }
     free(sf_trigger_msg->dl_info);
-    free(sf_trigger_msg->ul_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) {
+          if (sf_trigger_msg->ul_info[i]->ul_reception != NULL) {
+            free(sf_trigger_msg->ul_info[i]->ul_reception);
+          }
+          free(sf_trigger_msg->ul_info[i]);
+        }
+      }
+      free(sf_trigger_msg->ul_info);
+    }
     free(sf_trigger_msg);
   }
   if(*msg != NULL)