From 68328e0f2146e467f530519931cdd2e84f63bacf Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Thu, 26 Mar 2020 12:47:37 +0100 Subject: [PATCH] libnm: fail get_secret_flags(),set_secret_flags() for empty secret name in NMSettingVpn --- libnm-core/nm-setting-vpn.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/libnm-core/nm-setting-vpn.c b/libnm-core/nm-setting-vpn.c index a4a2afd5ff..6d255b5c8e 100644 --- a/libnm-core/nm-setting-vpn.c +++ b/libnm-core/nm-setting-vpn.c @@ -715,6 +715,14 @@ get_secret_flags (NMSetting *setting, const char *flags_val; gint64 i64; + nm_assert (secret_name); + + if (!secret_name[0]) { + g_set_error (error, NM_CONNECTION_ERROR, NM_CONNECTION_ERROR_PROPERTY_NOT_SECRET, + _("secret name cannot be empty")); + return FALSE; + } + flags_key = nm_construct_name_a ("%s-flags", secret_name, &flags_key_free); if (!g_hash_table_lookup_extended (priv->data, flags_key, NULL, (gpointer *) &flags_val)) { @@ -755,6 +763,14 @@ set_secret_flags (NMSetting *setting, NMSettingSecretFlags flags, GError **error) { + nm_assert (secret_name); + + if (!secret_name[0]) { + g_set_error (error, NM_CONNECTION_ERROR, NM_CONNECTION_ERROR_PROPERTY_NOT_SECRET, + _("secret name cannot be empty")); + return FALSE; + } + g_hash_table_insert (NM_SETTING_VPN_GET_PRIVATE (setting)->data, g_strdup_printf ("%s-flags", secret_name), g_strdup_printf ("%u", flags));