Commit ae496a52 authored by Matthias Clasen's avatar Matthias Clasen

GDBusProxy: on_properties_changed initialize some variables

This avoids calling g_variant_unref and g_free on uninitialized memory
if PropertiesChanged is received in the creating thread's thread-default
main context's thread, at the same time as releasing the last ref in
another thread. This would result in "goto out" before the variables
freed after that label had been initialized to NULL.

Based on a patch by Simon McVittie, bug 656282
parent 655299a0
......@@ -928,6 +928,9 @@ on_properties_changed (GDBusConnection *connection,
GVariant *value;
guint n;
changed_properties = NULL;
invalidated_properties = NULL;
G_LOCK (signal_subscription_lock);
proxy = data->proxy;
if (proxy == NULL)
......@@ -941,9 +944,6 @@ on_properties_changed (GDBusConnection *connection,
G_UNLOCK (signal_subscription_lock);
changed_properties = NULL;
invalidated_properties = NULL;
if (!proxy->priv->initialized)
goto out;
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment