We were double looping previously which caused a NULL deref.
else
filters = &window->filters;
- for (tmp_list = *filters; tmp_list; tmp_list = tmp_list->next)
+ tmp_list = *filters;
+ while (tmp_list)
{
GdkEventFilter *iter_filter = tmp_list->data;
GList *node;
+ node = tmp_list;
+ tmp_list = tmp_list->next;
+
if (iter_filter != filter)
continue;
if (filter->ref_count != 0)
continue;
- node = tmp_list;
- tmp_list = tmp_list->next;
-
*filters = g_list_remove_link (*filters, node);
g_free (filter);
g_list_free_1 (node);