summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2022-08-09 17:26:51 +0200
committerThomas Haller <thaller@redhat.com>2022-08-10 14:48:26 +0200
commitb1835a45d20ef9727ff2fc130c8ae700643cbfc7 (patch)
tree5a26479b98821f9d5cfbad1b61338dbfe6519599
parentd8419a9611bf93002fd1c05eeb18d4e239fff094 (diff)
downloadNetworkManager-th/nmclient-crash-rh2112997.tar.gz
libnm: fix crash during destruction of NMClientth/nmclient-crash-rh2112997
I am not entirely sure under which circumstances this could have happened. From 1.39.10-dev snapshot: #0 0x00007fe96825eda4 in _nm_client_notify_event_queue_emit_obj_signal (self=0x0, source=0x0, nmobj=0x7fe950028be0, is_added=0, prio_offset=7, signal_id=3) at src/libnm-client-impl/nm-client.c:900 #1 0x00007fe968258f0e in nml_dbus_property_ao_notify_changed_ao (pr_ao_data=pr_ao_data@entry=0x7fe954032c10, self=self@entry=0x0, is_added=is_added@entry=0) at src/libnm-client-impl/nm-client.c:1939 pr_ao = <optimized out> vtable = <optimized out> #2 0x00007fe968261d2d in nml_dbus_property_ao_clear (pr_ao=pr_ao@entry=0x7fe95001e560, self=self@entry=0x0) at src/libnm-client-impl/nm-client.c:2314 pr_ao_data = 0x7fe954032c10 changed_prop = 0 #3 0x00007fe968261d6c in nml_dbus_property_ao_clear_many (pr_ao=0x7fe95001e5a8, pr_ao@entry=0x7fe95001e560, len=<optimized out>, len@entry=4, self=self@entry=0x0) at src/libnm-client-impl/nm-client.c:2357 #4 0x00007fe968266d26 in dispose (object=0x7fe95001e3d0) at src/libnm-client-impl/nm-client.c:7958 self = 0x7fe95001e3d0 priv = 0x7fe95001e400 #5 0x00007fe96ae76828 in g_object_unref () at /lib64/libgobject-2.0.so.0 ... https://bugzilla.redhat.com/show_bug.cgi?id=2112997 Fixes: ce0e898fb476 ('libnm: refactor caching of D-Bus objects in NMClient')
-rw-r--r--src/libnm-client-impl/nm-client.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/libnm-client-impl/nm-client.c b/src/libnm-client-impl/nm-client.c
index a2ca833336..e0953c98f1 100644
--- a/src/libnm-client-impl/nm-client.c
+++ b/src/libnm-client-impl/nm-client.c
@@ -7954,8 +7954,8 @@ dispose(GObject *object)
nm_assert(c_list_is_empty(&self->obj_base.queue_notify_lst));
nm_assert(nm_g_hash_table_size(priv->dbus_objects) == 0);
- nml_dbus_property_o_clear_many(priv->nm.property_o, G_N_ELEMENTS(priv->nm.property_o), NULL);
- nml_dbus_property_ao_clear_many(priv->nm.property_ao, G_N_ELEMENTS(priv->nm.property_ao), NULL);
+ nml_dbus_property_o_clear_many(priv->nm.property_o, G_N_ELEMENTS(priv->nm.property_o), self);
+ nml_dbus_property_ao_clear_many(priv->nm.property_ao, G_N_ELEMENTS(priv->nm.property_ao), self);
nm_clear_g_free(&priv->nm.connectivity_check_uri);
nm_clear_g_free(&priv->nm.version);