Hi,
 I was analyzing a core dump and then narrow down the problem that there is
a bug in C function. Then I thought lets have a contest who find the bug
first.

So here are the code details

   if (ueInfo) {
       /* Remove ueInfo from RACH-Access queue */
      if (ueInfo->campedCell) {
int                rachQIndex = 0;
waitRachTxQueue_t *rachTxQueue  = &ueInfo->campedCell->waitRachTxQueue;
while (rachQIndex < rachTxQueue->n) {
  if (rachTxQueue->queue[(rachQIndex + rachTxQueue->start) %
(petMaxUEInstancePerProcess+1)]->uEID == cellUncampUEReq->uEID) {
    int delIndex;

    for (delIndex = rachQIndex; delIndex < rachTxQueue->n; delIndex++) {
      rachTxQueue->queue[(delIndex + rachTxQueue->start) %
(petMaxUEInstancePerProcess+1)]
= rachTxQueue->queue[(delIndex + rachTxQueue->start + 1) %
(petMaxUEInstancePerProcess+1)];
    }
    rachTxQueue->n--;
    infoPrint (vtask, INFO_LEVEL1, "handleCellUncampUEReq: UE removed from
rachTxQueue (uEID(%d) uCID(%d) rachTxQueue->n(%d)",
       cellUncampUEReq->uEID, cellUncampUEReq->uCID, rachTxQueue->n);
  }
  rachQIndex++;
}
      }
      ueInfo->campedCell = NULL;
      if (ueInfo->rlList.n == 0) {
VARIABLE_STR *var = (VARIABLE_STR*) vtask->var;

aaDelete (var->ueIDToUeInfoH, (char*) &cellUncampUEReq->uEID);
var->procInstToUeInfo[ueInfo->cetlAddrUPlane.processInstance][ueInfo->cetlAddrUPlane.serviceInstance]
= NULL;
infoPrint (vtask, INFO_LEVEL1, "handleCellUncampUEReq: wfree ueInfo from
ueIdToUeInfoH uEID(%d) ueInfo(0x%x)",
   cellUncampUEReq->uEID, ueInfo);
wfree (ueInfo);
      }


Ravi


[Non-text portions of this message have been removed]

Reply via email to