From 803fc616fd9d1f9cf6e92c6e1530fef16fc0c0d9 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Tue, 25 Aug 2015 18:41:08 +0200 Subject: [PATCH] libnm: properly handle floating references in nm_vpn_service_plugin_set_ip6_config() --- libnm/nm-vpn-plugin-old.c | 4 ++++ libnm/nm-vpn-service-plugin.c | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/libnm/nm-vpn-plugin-old.c b/libnm/nm-vpn-plugin-old.c index 197bb4561a..f31daab033 100644 --- a/libnm/nm-vpn-plugin-old.c +++ b/libnm/nm-vpn-plugin-old.c @@ -380,9 +380,13 @@ nm_vpn_plugin_old_set_ip6_config (NMVpnPluginOld *plugin, g_return_if_fail (NM_IS_VPN_PLUGIN_OLD (plugin)); g_return_if_fail (ip6_config != NULL); + g_variant_ref_sink (ip6_config); + priv->got_ip6 = TRUE; g_signal_emit (plugin, signals[IP6_CONFIG], 0, ip6_config); + g_variant_unref (ip6_config); + if ( priv->has_ip4 == priv->got_ip4 && priv->has_ip6 == priv->got_ip6) nm_vpn_plugin_old_set_state (plugin, NM_VPN_SERVICE_STATE_STARTED); diff --git a/libnm/nm-vpn-service-plugin.c b/libnm/nm-vpn-service-plugin.c index 2e15a542b7..d272d8c8dd 100644 --- a/libnm/nm-vpn-service-plugin.c +++ b/libnm/nm-vpn-service-plugin.c @@ -392,10 +392,14 @@ nm_vpn_service_plugin_set_ip6_config (NMVpnServicePlugin *plugin, g_return_if_fail (NM_IS_VPN_SERVICE_PLUGIN (plugin)); g_return_if_fail (ip6_config != NULL); + g_variant_ref_sink (ip6_config); + priv->got_ip6 = TRUE; g_signal_emit (plugin, signals[IP6_CONFIG], 0, ip6_config); g_signal_emit (priv->dbus_vpn_service_plugin, signals[IP6_CONFIG], 0, ip6_config); + g_variant_unref (ip6_config); + if ( priv->has_ip4 == priv->got_ip4 && priv->has_ip6 == priv->got_ip6) nm_vpn_service_plugin_set_state (plugin, NM_VPN_SERVICE_STATE_STARTED);