diff --git a/src/settings/nm-settings.c b/src/settings/nm-settings.c index 5c617e9d2d..411c13ecea 100644 --- a/src/settings/nm-settings.c +++ b/src/settings/nm-settings.c @@ -1337,7 +1337,7 @@ impl_settings_add_connection_helper (NMSettings *self, GVariant *settings, gboolean save_to_disk) { - NMConnection *connection; + gs_unref_object NMConnection *connection = NULL; GError *error = NULL; connection = _nm_simple_connection_new_from_dbus (settings, @@ -1345,23 +1345,18 @@ impl_settings_add_connection_helper (NMSettings *self, | NM_SETTING_PARSE_FLAGS_NORMALIZE, &error); - if (connection) { - if (!nm_connection_verify_secrets (connection, &error)) - goto failure; - - nm_settings_add_connection_dbus (self, - connection, - save_to_disk, - context, - impl_settings_add_connection_add_cb, - NULL); - g_object_unref (connection); + if ( !connection + || !nm_connection_verify_secrets (connection, &error)) { + g_dbus_method_invocation_take_error (context, error); return; } -failure: - g_assert (error); - g_dbus_method_invocation_take_error (context, error); + nm_settings_add_connection_dbus (self, + connection, + save_to_disk, + context, + impl_settings_add_connection_add_cb, + NULL); } static void