diff options
author | Thomas Haller <thaller@redhat.com> | 2014-11-07 23:08:13 +0100 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2014-11-07 23:08:18 +0100 |
commit | dde8e703f86d2e0aebd0840135ca43f0be822007 (patch) | |
tree | a9530eafbae260f7cc9613ccc1a35fa323855e75 | |
parent | a1a338f9b0a8f70729cab8e5394ec563963ba11a (diff) | |
download | NetworkManager-dde8e703f86d2e0aebd0840135ca43f0be822007.tar.gz |
libnm: make dispose() of NMClient reentrant
Signed-off-by: Thomas Haller <thaller@redhat.com>
-rw-r--r-- | libnm/nm-client.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/libnm/nm-client.c b/libnm/nm-client.c index b84fce5f95..4e4f194f5c 100644 --- a/libnm/nm-client.c +++ b/libnm/nm-client.c @@ -1825,10 +1825,14 @@ dispose (GObject *object) { NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (object); - g_signal_handlers_disconnect_by_data (priv->manager, object); - g_clear_object (&priv->manager); - g_signal_handlers_disconnect_by_data (priv->settings, object); - g_clear_object (&priv->settings); + if (priv->manager) { + g_signal_handlers_disconnect_by_data (priv->manager, object); + g_clear_object (&priv->manager); + } + if (priv->settings) { + g_signal_handlers_disconnect_by_data (priv->settings, object); + g_clear_object (&priv->settings); + } G_OBJECT_CLASS (nm_client_parent_class)->dispose (object); } |