diff --git a/openair2/LAYER2/MAC/defs.h b/openair2/LAYER2/MAC/defs.h
index 81c480d2c9fcbe3b1d2398af8085b82c74a6e1b9..5f3c67637c7e6cba44df8d5a48dc510096f327a7 100644
--- a/openair2/LAYER2/MAC/defs.h
+++ b/openair2/LAYER2/MAC/defs.h
@@ -621,7 +621,9 @@ typedef struct {
   uint8_t DLSCH_dci_size_bits;
 
   /// DCI buffer for DLSCH
-  uint8_t DLSCH_DCI[8][(MAX_DCI_SIZE_BITS>>3)+1];
+  /* rounded to 32 bits unit (actual value should be 8 due to the logic
+   * of the function generate_dci0) */
+  uint8_t DLSCH_DCI[8][(((MAX_DCI_SIZE_BITS)+31)>>5)*4];
 
   /// Number of Allocated RBs for DL after scheduling (prior to frequency allocation)
   uint16_t nb_rb[8]; // num_max_harq
@@ -645,7 +647,9 @@ typedef struct {
   uint8_t assigned_mcs_ul;
 
   /// DCI buffer for ULSCH
-  uint8_t ULSCH_DCI[8][(MAX_DCI_SIZE_BITS>>3)+1];
+  /* rounded to 32 bits unit (actual value should be 8 due to the logic
+   * of the function generate_dci0) */
+  uint8_t ULSCH_DCI[8][(((MAX_DCI_SIZE_BITS)+31)>>5)*4];
 
   /// DL DAI
   uint8_t DAI;