diff --git a/src/common/timer.c b/src/common/timer.c index af5db91..4b07d13 100644 --- a/src/common/timer.c +++ b/src/common/timer.c @@ -57,8 +57,9 @@ void timer_exit(struct timer *timer) timer_tail_p = &timer_head; while (*timer_tail_p) { if (timer == *timer_tail_p) - *timer_tail_p = timer->next; - timer_tail_p = &timer->next; + *timer_tail_p = (*timer_tail_p)->next; + else + timer_tail_p = &((*timer_tail_p)->next); } timer->linked = 0; }