mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager
synced 2024-09-15 22:29:58 +00:00
clients,libnm-core: zero-out memory used to store plain-text secrets
This commit is contained in:
parent
725cc68710
commit
730adf2afd
|
@ -17,6 +17,7 @@
|
|||
|
||||
#include "nm-vpn-helpers.h"
|
||||
#include "nm-client-utils.h"
|
||||
#include "nm-glib-aux/nm-secret-utils.h"
|
||||
|
||||
#include "utils.h"
|
||||
|
||||
|
@ -732,7 +733,7 @@ get_secrets_from_user (const NmcConfig *nmc_config,
|
|||
/* No password provided, cancel the secrets. */
|
||||
if (!pwd)
|
||||
return FALSE;
|
||||
g_free (secret->value);
|
||||
nm_free_secret (secret->value);
|
||||
secret->value = pwd;
|
||||
}
|
||||
return TRUE;
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
#include "utils.h"
|
||||
#include "common.h"
|
||||
#include "connections.h"
|
||||
#include "nm-glib-aux/nm-secret-utils.h"
|
||||
|
||||
/* define some prompts */
|
||||
#define PROMPT_INTERFACE _("Interface: ")
|
||||
|
@ -3639,7 +3640,7 @@ finish:
|
|||
if (bssid2_arr)
|
||||
g_byte_array_free (bssid2_arr, TRUE);
|
||||
g_free (ssid_ask);
|
||||
g_free (passwd_ask);
|
||||
nm_free_secret (passwd_ask);
|
||||
|
||||
return nmc->return_value;
|
||||
}
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
#include "nm-utils-private.h"
|
||||
#include "nm-setting-private.h"
|
||||
#include "nm-setting-wireless.h"
|
||||
#include "nm-glib-aux/nm-secret-utils.h"
|
||||
|
||||
/**
|
||||
* SECTION:nm-setting-wireless-security
|
||||
|
@ -1316,33 +1317,33 @@ set_property (GObject *object, guint prop_id,
|
|||
priv->leap_username = g_value_dup_string (value);
|
||||
break;
|
||||
case PROP_WEP_KEY0:
|
||||
g_free (priv->wep_key0);
|
||||
nm_free_secret (priv->wep_key0);
|
||||
priv->wep_key0 = g_value_dup_string (value);
|
||||
break;
|
||||
case PROP_WEP_KEY1:
|
||||
g_free (priv->wep_key1);
|
||||
nm_free_secret (priv->wep_key1);
|
||||
priv->wep_key1 = g_value_dup_string (value);
|
||||
break;
|
||||
case PROP_WEP_KEY2:
|
||||
g_free (priv->wep_key2);
|
||||
nm_free_secret (priv->wep_key2);
|
||||
priv->wep_key2 = g_value_dup_string (value);
|
||||
break;
|
||||
case PROP_WEP_KEY3:
|
||||
g_free (priv->wep_key3);
|
||||
nm_free_secret (priv->wep_key3);
|
||||
priv->wep_key3 = g_value_dup_string (value);
|
||||
break;
|
||||
case PROP_WEP_KEY_FLAGS:
|
||||
priv->wep_key_flags = g_value_get_flags (value);
|
||||
break;
|
||||
case PROP_PSK:
|
||||
g_free (priv->psk);
|
||||
nm_free_secret (priv->psk);
|
||||
priv->psk = g_value_dup_string (value);
|
||||
break;
|
||||
case PROP_PSK_FLAGS:
|
||||
priv->psk_flags = g_value_get_flags (value);
|
||||
break;
|
||||
case PROP_LEAP_PASSWORD:
|
||||
g_free (priv->leap_password);
|
||||
nm_free_secret (priv->leap_password);
|
||||
priv->leap_password = g_value_dup_string (value);
|
||||
break;
|
||||
case PROP_LEAP_PASSWORD_FLAGS:
|
||||
|
@ -1392,12 +1393,12 @@ finalize (GObject *object)
|
|||
g_free (priv->key_mgmt);
|
||||
g_free (priv->auth_alg);
|
||||
g_free (priv->leap_username);
|
||||
g_free (priv->wep_key0);
|
||||
g_free (priv->wep_key1);
|
||||
g_free (priv->wep_key2);
|
||||
g_free (priv->wep_key3);
|
||||
g_free (priv->psk);
|
||||
g_free (priv->leap_password);
|
||||
nm_free_secret (priv->wep_key0);
|
||||
nm_free_secret (priv->wep_key1);
|
||||
nm_free_secret (priv->wep_key2);
|
||||
nm_free_secret (priv->wep_key3);
|
||||
nm_free_secret (priv->psk);
|
||||
nm_free_secret (priv->leap_password);
|
||||
|
||||
g_slist_free_full (priv->proto, g_free);
|
||||
g_slist_free_full (priv->pairwise, g_free);
|
||||
|
|
Loading…
Reference in a new issue