diff options
author | Mike Gorse <mgorse@suse.com> | 2021-04-21 16:37:14 -0500 |
---|---|---|
committer | Mike Gorse <mgorse@suse.com> | 2021-04-21 16:37:14 -0500 |
commit | 0b551954386543e97370d97ea1b78dd096edb14e (patch) | |
tree | b115a4aa8a532a0122b1a3537005a85cbf14d3af /atspi/atspi-event-listener.c | |
parent | 303ff15ea793189e1e8855b32df967e0a05fe08c (diff) | |
download | at-spi2-core-0b551954386543e97370d97ea1b78dd096edb14e.tar.gz |
Fix double free when removing event listeners
Fixes https://gitlab.gnome.org/GNOME/at-spi2-core/issues/35
Diffstat (limited to 'atspi/atspi-event-listener.c')
-rw-r--r-- | atspi/atspi-event-listener.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/atspi/atspi-event-listener.c b/atspi/atspi-event-listener.c index ca6828fe..5455b589 100644 --- a/atspi/atspi-event-listener.c +++ b/atspi/atspi-event-listener.c @@ -798,7 +798,10 @@ atspi_event_listener_deregister_from_callback (AtspiEventListenerCB callback, DBusMessage *message, *reply; l = g_list_next (l); if (in_send) - pending_removals = g_list_append (pending_removals, e); + { + pending_removals = g_list_remove (pending_removals, e); + pending_removals = g_list_append (pending_removals, e); + } else event_listeners = g_list_remove (event_listeners, e); for (i = 0; i < matchrule_array->len; i++) |