#define GKI_ERROR_ADDR_NOT_IN_BUF 0xFFF5
#define GKI_ERROR_OUT_OF_BUFFERS 0xFFF4
#define GKI_ERROR_GETPOOLBUF_BAD_QID 0xFFF3
+#define GKI_ERROR_TIMER_LIST_CORRUPTED 0xFFF2
/********************************************************************
}
else /* This entry needs to be inserted before the last entry */
{
- /* Find the entry that the new one needs to be inserted in front of */
p_temp = p_timer_listq->p_first;
+
+ if (p_temp == NULL)
+ {
+ /* list is corrupted, exit to avoid crash */
+ GKI_TRACE_ERROR_0("GKI_add_to_timer_list : Timerlist Q is empty");
+ GKI_exception(GKI_ERROR_TIMER_LIST_CORRUPTED, "*** "
+ "GKI_add_to_timer_list(): timer list corrupted! ***");
+ return;
+ }
+ /* Find the entry that the new one needs to be inserted in front of
+ * as last_ticks is the expiry value of p_last, it should be inserted
+ * BEFORE p_last. otherwise list is probably corrupted! */
while (p_tle->ticks > p_temp->ticks)
{
/* Update the tick value if looking at an unexpired entry */