Timer: fix use after free
This commit is contained in:
@@ -384,6 +384,7 @@ void callback_multi_timeout(void *arg)
|
|||||||
gettime(&cur_time);
|
gettime(&cur_time);
|
||||||
GSList *it = mth->timeout_list;
|
GSList *it = mth->timeout_list;
|
||||||
while (it) {
|
while (it) {
|
||||||
|
GSList *next = it->next;
|
||||||
timeout *t = it->data;
|
timeout *t = it->data;
|
||||||
if (++t->multi_timeout->current_count >= t->multi_timeout->count_to_expiration) {
|
if (++t->multi_timeout->current_count >= t->multi_timeout->count_to_expiration) {
|
||||||
t->_callback(t->arg);
|
t->_callback(t->arg);
|
||||||
@@ -395,7 +396,7 @@ void callback_multi_timeout(void *arg)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
it = it->next;
|
it = next;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user