From 08d94767089a7dee0b4904681e7be5886adacde4 Mon Sep 17 00:00:00 2001 From: Beniamino Galvani Date: Mon, 1 Jun 2026 10:14:12 +0200 Subject: [PATCH] settings: fix memory leak in Update2() options parsing The "{&sv}" format in g_variant_iter_next() borrows the key but creates a new reference for the value. Fixes: 82d16789a518 ('settings-connection: add a "plugin" argument to Update2()') --- src/core/settings/nm-settings-connection.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/core/settings/nm-settings-connection.c b/src/core/settings/nm-settings-connection.c index 7ed3712b47..c8f5f2903b 100644 --- a/src/core/settings/nm-settings-connection.c +++ b/src/core/settings/nm-settings-connection.c @@ -1866,6 +1866,8 @@ impl_settings_connection_update2(NMDBusObject *obj, g_variant_iter_init(&iter, args); while (g_variant_iter_next(&iter, "{&sv}", &args_name, &args_value)) { + gs_unref_variant GVariant *args_value_unref = args_value; + if (plugin_name == NULL && nm_streq(args_name, "plugin") && g_variant_is_of_type(args_value, G_VARIANT_TYPE_STRING)) { plugin_name = g_variant_dup_string(args_value, NULL);