diff options
author | Dan Williams <dcbw@redhat.com> | 2010-06-28 15:15:23 -0700 |
---|---|---|
committer | Dan Williams <dcbw@redhat.com> | 2010-06-28 15:15:23 -0700 |
commit | 6893b3d0dde4e05ee47b60fcba8e2710346722a4 (patch) | |
tree | f1285f6baee557e21d2009dc2c7d9e046c738c13 /libnm-util/nm-setting-vpn.c | |
parent | 3d4b6163b97179b5dd0e55c66fee9ba3aef5e983 (diff) | |
download | NetworkManager-6893b3d0dde4e05ee47b60fcba8e2710346722a4.tar.gz |
libnm-util: ensure empty VPN secrets are not used (rh #587784)
Diffstat (limited to 'libnm-util/nm-setting-vpn.c')
-rw-r--r-- | libnm-util/nm-setting-vpn.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/libnm-util/nm-setting-vpn.c b/libnm-util/nm-setting-vpn.c index cef8323432..53b609e2d8 100644 --- a/libnm-util/nm-setting-vpn.c +++ b/libnm-util/nm-setting-vpn.c @@ -248,6 +248,7 @@ static gboolean update_one_secret (NMSetting *setting, const char *key, GValue *value, GError **error) { NMSettingVPNPrivate *priv = NM_SETTING_VPN_GET_PRIVATE (setting); + char *str; g_return_val_if_fail (key != NULL, FALSE); g_return_val_if_fail (value != NULL, FALSE); @@ -259,8 +260,17 @@ update_one_secret (NMSetting *setting, const char *key, GValue *value, GError ** return FALSE; } - g_hash_table_insert (priv->secrets, g_strdup (key), g_value_dup_string (value)); - return FALSE; + str = g_value_dup_string (value); + if (!str || !strlen (str)) { + g_set_error (error, NM_SETTING_ERROR, + NM_SETTING_ERROR_PROPERTY_TYPE_MISMATCH, + "Secret %s was empty", key); + g_free (str); + return FALSE; + } + + g_hash_table_insert (priv->secrets, g_strdup (key), str); + return TRUE; } static void |