From 52b1f0415d558d02afb62f01c8abac75a2ee245b Mon Sep 17 00:00:00 2001 From: Beniamino Galvani Date: Thu, 23 Feb 2017 18:15:10 +0100 Subject: [PATCH] manager: check that slaves connection have a compatible device When slave connections are autoactivated as dependency to master we don't check if a compatible device is available before trying to activate them, leading to the following failed assertion: nm_act_request_new: assertion 'NM_IS_DEVICE (device)' failed --- src/nm-manager.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/nm-manager.c b/src/nm-manager.c index 6c74a770ee..5b749bdcb2 100644 --- a/src/nm-manager.c +++ b/src/nm-manager.c @@ -2947,6 +2947,7 @@ autoconnect_slaves (NMManager *self, while (iter) { NMSettingsConnection *slave_connection = iter->data; const char *uuid; + NMDevice *slave_device; iter = iter->next; @@ -2974,6 +2975,20 @@ autoconnect_slaves (NMManager *self, g_strdup (uuid), g_free); + slave_device = nm_manager_get_best_device_for_connection (self, + NM_CONNECTION (slave_connection), + FALSE); + if (!slave_device) { + _LOGD (LOGD_CORE, + "will NOT activate slave connection '%s' (%s) as a dependency for master '%s' (%s): " + "no compatible device found", + nm_settings_connection_get_id (slave_connection), + nm_settings_connection_get_uuid (slave_connection), + nm_settings_connection_get_id (master_connection), + nm_settings_connection_get_uuid (master_connection)); + continue; + } + _LOGD (LOGD_CORE, "will activate slave connection '%s' (%s) as a dependency for master '%s' (%s)", nm_settings_connection_get_id (slave_connection), nm_settings_connection_get_uuid (slave_connection), @@ -2985,7 +3000,7 @@ autoconnect_slaves (NMManager *self, slave_connection, NULL, NULL, - nm_manager_get_best_device_for_connection (self, NM_CONNECTION (slave_connection), FALSE), + slave_device, subject, NM_ACTIVATION_TYPE_MANAGED, &local_err);