diff --git a/openair2/RRC/LITE/rrc_UE.c b/openair2/RRC/LITE/rrc_UE.c index e5f4de7d188a43b603b83629caeb375d0b2abee5..2ef5ab4e5eda9b8a28b15d3de16ef1a15e95093a 100644 --- a/openair2/RRC/LITE/rrc_UE.c +++ b/openair2/RRC/LITE/rrc_UE.c @@ -213,6 +213,9 @@ init_SI_UE( UE_rrc_inst[ctxt_pP->module_id].sib1[eNB_index] = (SystemInformationBlockType1_t*)malloc16(sizeof(SystemInformationBlockType1_t)); UE_rrc_inst[ctxt_pP->module_id].SI[eNB_index] = (uint8_t*)malloc16(64); + // FIXME the structure member si is defined as si[NB_CNX_UE][8] + // FIXME the code at rrc_UE.c:2250 indexes si like this: UE_rrc_inst[ctxt_pP->module_id].si[eNB_index][si_window] + // FIXME for si_window = 2 (which can happen) this produces a SIGSEGV for (i=0; i<NB_CNX_UE; i++) { UE_rrc_inst[ctxt_pP->module_id].si[eNB_index][i] = (SystemInformation_t*)malloc16(sizeof(SystemInformation_t)); } @@ -2245,7 +2248,7 @@ decode_BCCH_DLSCH_Message( // if ((frameP %8) == 1) { // check only in odd frames for SI si_window = (ctxt_pP->frame%(UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIperiod/10))/ (UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIwindowsize/10); - memcpy((void*)si[si_window], + memcpy((void*)si[si_window], // FIXME check indexing (see line 219) (void*)&bcch_message->message.choice.c1.choice.systemInformation, sizeof(SystemInformation_t)); LOG_D(RRC,"[UE %d] Decoding SI for frameP %d, si_window %d\n",