diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c index 67df676b70..94906224ac 100644 --- a/src/devices/nm-device.c +++ b/src/devices/nm-device.c @@ -10160,7 +10160,7 @@ _device_activate (NMDevice *self, NMActRequest *req) g_return_if_fail (NM_IS_DEVICE (self)); g_return_if_fail (NM_IS_ACT_REQUEST (req)); - g_return_if_fail (nm_device_get_managed (self, FALSE)); + nm_assert (nm_device_is_real (self)); /* Ensure the activation request is still valid; the master may have * already failed in which case activation of this device should not proceed. @@ -10168,6 +10168,17 @@ _device_activate (NMDevice *self, NMActRequest *req) if (nm_active_connection_get_state (NM_ACTIVE_CONNECTION (req)) >= NM_ACTIVE_CONNECTION_STATE_DEACTIVATING) return; + if (!nm_device_get_managed (self, FALSE)) { + /* It's unclear why the device would be unmanaged at this point. + * Just to be sure, handle it and error out. */ + _LOGE (LOGD_DEVICE, "Activation: failed activating connection '%s' because device is still unmanaged", + nm_active_connection_get_settings_connection_id ((NMActiveConnection *) req)); + nm_active_connection_set_state_fail ((NMActiveConnection *) req, + NM_ACTIVE_CONNECTION_STATE_REASON_UNKNOWN, + NULL); + return; + } + connection = nm_act_request_get_applied_connection (req); nm_assert (connection);