diff --git a/src/core/nm-policy.c b/src/core/nm-policy.c index 26556c347e..ef0d8456ba 100644 --- a/src/core/nm-policy.c +++ b/src/core/nm-policy.c @@ -1460,7 +1460,6 @@ _auto_activate_device_clear(NMPolicy *self, NMDevice *device, gboolean do_activa _auto_activate_device(self, device); nm_device_remove_pending_action(device, NM_PENDING_ACTION_AUTOACTIVATE, TRUE); - g_object_unref(device); } static gboolean @@ -1663,6 +1662,14 @@ nm_policy_device_recheck_auto_activate_schedule(NMPolicy *self, NMDevice *device g_return_if_fail(NM_IS_POLICY(self)); g_return_if_fail(NM_IS_DEVICE(device)); + nm_assert(g_signal_handler_find(device, + G_SIGNAL_MATCH_DATA, + 0, + 0, + NULL, + NULL, + NM_POLICY_GET_PRIVATE(self)) + != 0); if (!c_list_is_empty(&device->policy_auto_activate_lst)) { /* already queued. Return. */ @@ -1691,7 +1698,6 @@ nm_policy_device_recheck_auto_activate_schedule(NMPolicy *self, NMDevice *device c_list_link_tail(&priv->policy_auto_activate_lst_head, &device->policy_auto_activate_lst); device->policy_auto_activate_idle_source = nm_g_idle_add_source(_auto_activate_idle_cb, device); - g_object_ref(device); } static gboolean