From e940198c3790680b69d63ef73cbe6aae6e2d0abb Mon Sep 17 00:00:00 2001 From: Beniamino Galvani Date: Mon, 13 Feb 2017 15:39:48 +0100 Subject: [PATCH] cli: fix setting of private key password We can't pass the password obtained from nm_setting_802_1x_get_*private_key_password() to nm_setting_802_1x_set_*private_key() as the latter also frees the old password. Fixes: afd281102879168f13fb4d1deff9535542ad6fc5 (cherry picked from commit b2146a43e5591c1ae6fd94379749781858f4d057) --- clients/cli/settings.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/clients/cli/settings.c b/clients/cli/settings.c index df0effa359..1c8d54626f 100644 --- a/clients/cli/settings.c +++ b/clients/cli/settings.c @@ -1916,6 +1916,7 @@ nmc_property_802_1X_get_phase2_private_key_full (NMSetting *setting, NmcProperty char *val_strip = g_strstrip (g_strdup (val)); \ char *p = val_strip; \ const char *path, *password; \ + gs_free char *password_free = NULL; \ NMSetting8021xCKScheme scheme = NM_SETTING_802_1X_CK_SCHEME_PATH; \ gboolean success; \ \ @@ -1929,7 +1930,7 @@ nmc_property_802_1X_get_phase2_private_key_full (NMSetting *setting, NmcProperty if (g_strv_length (strv) == 2) \ password = strv[1]; \ else \ - password = pwd_func (NM_SETTING_802_1X (setting)); \ + password = password_free = g_strdup (pwd_func (NM_SETTING_802_1X (setting))); \ success = set_func (NM_SETTING_802_1X (setting), path, password, scheme, NULL, error); \ g_free (val_strip); \ g_strfreev (strv); \