uloop: fix signal unblocking
[project/libubox.git] / safe_list.c
index d9f211f..16f57e0 100644 (file)
@@ -86,6 +86,12 @@ void safe_list_add(struct safe_list *list, struct safe_list *head)
        list_add_tail(&list->list, &head->list);
 }
 
+void safe_list_add_first(struct safe_list *list, struct safe_list *head)
+{
+       list->i = NULL;
+       list_add(&list->list, &head->list);
+}
+
 void safe_list_del(struct safe_list *list)
 {
        struct safe_list_iterator *i, *next_i, **tail;
@@ -108,7 +114,8 @@ void safe_list_del(struct safe_list *list)
        next->i = list->i;
        list->i->head = &next->i;
        *tail = next_i;
-       next_i->head = tail;
+       if (next_i)
+               next_i->head = tail;
 
        list->i = NULL;
 }