From 2f4c21ced37f6e7f7c7f906d6210116558887b3b Mon Sep 17 00:00:00 2001
From: tomita <tomita.y@jp.fujitsu.com>
Date: Thu, 22 Feb 2018 17:10:21 +0900
Subject: [PATCH] Fix to avoid Segmemtation Fault in case of
 physicalConfigDedicated is NULL.

---
 .../LAYER2/MAC/eNB_scheduler_primitives.c     | 42 +++++++++++--------
 1 file changed, 24 insertions(+), 18 deletions(-)

diff --git a/openair2/LAYER2/MAC/eNB_scheduler_primitives.c b/openair2/LAYER2/MAC/eNB_scheduler_primitives.c
index 2aae8a7eab..7f933a192a 100644
--- a/openair2/LAYER2/MAC/eNB_scheduler_primitives.c
+++ b/openair2/LAYER2/MAC/eNB_scheduler_primitives.c
@@ -1451,24 +1451,30 @@ fill_nfapi_harq_information(module_id_t module_idP,
 //			[UE_id].physicalConfigDedicated->
 //			pucch_ConfigDedicated != NULL,
 //			"pucch_ConfigDedicated is null for TDD!\n");
-	    if ((UE_list->
-	            UE_template[CC_idP][UE_id].physicalConfigDedicated->
-	            pucch_ConfigDedicated != NULL)
-	    && (UE_list->
-		 UE_template[CC_idP][UE_id].physicalConfigDedicated->
-		 pucch_ConfigDedicated->tdd_AckNackFeedbackMode != NULL)
-		&& (*UE_list->
-		    UE_template[CC_idP][UE_id].physicalConfigDedicated->
-		    pucch_ConfigDedicated->tdd_AckNackFeedbackMode ==
-		    PUCCH_ConfigDedicated__tdd_AckNackFeedbackMode_multiplexing))
-	    {
-		harq_information->harq_information_rel10_tdd.harq_size = 2;	// 2-bit ACK/NAK
-		harq_information->harq_information_rel10_tdd.ack_nack_mode = 1;	// multiplexing
-	    } else {
-		harq_information->harq_information_rel10_tdd.harq_size = 1;	// 1-bit ACK/NAK
-		harq_information->harq_information_rel10_tdd.ack_nack_mode = 0;	// bundling
-	    }
-            harq_information->harq_information_rel10_tdd.tl.tag = NFAPI_UL_CONFIG_REQUEST_HARQ_INFORMATION_REL10_TDD_TAG;
+	    if (UE_list->
+	            UE_template[CC_idP][UE_id].physicalConfigDedicated != NULL){
+	      if ((UE_list->
+	              UE_template[CC_idP][UE_id].physicalConfigDedicated->
+	              pucch_ConfigDedicated != NULL)
+	      && (UE_list->
+		   UE_template[CC_idP][UE_id].physicalConfigDedicated->
+		   pucch_ConfigDedicated->tdd_AckNackFeedbackMode != NULL)
+		  && (*UE_list->
+		      UE_template[CC_idP][UE_id].physicalConfigDedicated->
+		      pucch_ConfigDedicated->tdd_AckNackFeedbackMode ==
+		      PUCCH_ConfigDedicated__tdd_AckNackFeedbackMode_multiplexing))
+	      {
+		  harq_information->harq_information_rel10_tdd.harq_size = 2;	// 2-bit ACK/NAK
+		  harq_information->harq_information_rel10_tdd.ack_nack_mode = 1;	// multiplexing
+	      } else {
+		  harq_information->harq_information_rel10_tdd.harq_size = 1;	// 1-bit ACK/NAK
+		  harq_information->harq_information_rel10_tdd.ack_nack_mode = 0;	// bundling
+	      }
+        } else {
+        harq_information->harq_information_rel10_tdd.harq_size = 1;     // 1-bit ACK/NAK
+        harq_information->harq_information_rel10_tdd.ack_nack_mode = 0; // bundling
+        }
+		harq_information->harq_information_rel10_tdd.tl.tag = NFAPI_UL_CONFIG_REQUEST_HARQ_INFORMATION_REL10_TDD_TAG;
 	    harq_information->harq_information_rel10_tdd.n_pucch_1_0 =
 		cc->radioResourceConfigCommon->pucch_ConfigCommon.
 		n1PUCCH_AN + cce_idxP;
-- 
GitLab