st/texture-cache: Fix invalid memory write related to X11 window icons

st_texture_cache_bind_weak_notify calls g_clear_signal_handler which
then calls st_texture_cache_free_bind. st_texture_cache_free_bind frees
the bind structure, so by the time g_clear_signal_handler tries to write
bind->notify_signal_id, bind has already been freed.

Fix this by using g_signal_handler_disconnect instead.

This partially reverts 135d178d08

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/2334
This commit is contained in:
Sebastian Keller 2020-03-09 02:17:19 +01:00 committed by Florian Müllner
parent 89f2187d72
commit 1b872c1195

View File

@ -777,7 +777,7 @@ st_texture_cache_bind_weak_notify (gpointer data,
{
StTextureCachePropertyBind *bind = data;
bind->weakref_active = FALSE;
g_clear_signal_handler (&bind->notify_signal_id, bind->source);
g_signal_handler_disconnect (bind->source, bind->notify_signal_id);
}
static void