From 608dfacb0bddfa2a50da663db318b0ff0df0f6b1 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Wed, 28 Feb 2018 08:42:25 +0100 Subject: [PATCH] core: fix leaking connection in impl_settings_add_connection_helper() Fixes: 0f6baeef35550e7f151a817fb8e2988ae88198b7 --- src/settings/nm-settings.c | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) 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