projects
/
project
/
libubox.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
uloop: fix a segfault on deleting the first active timer from within another timer
[project/libubox.git]
/
uloop.c
diff --git
a/uloop.c
b/uloop.c
index
acf46db
..
aa09750
100644
(file)
--- a/
uloop.c
+++ b/
uloop.c
@@
-464,9
+464,11
@@
static int uloop_get_next_timeout(struct timeval *tv)
static void uloop_process_timeouts(struct timeval *tv)
{
static void uloop_process_timeouts(struct timeval *tv)
{
- struct uloop_timeout *t, *tmp;
+ struct uloop_timeout *t;
+
+ while (!list_empty(&timeouts)) {
+ t = list_first_entry(&timeouts, struct uloop_timeout, list);
- list_for_each_entry_safe(t, tmp, &timeouts, list) {
if (tv_diff(&t->time, tv) > 0)
break;
if (tv_diff(&t->time, tv) > 0)
break;