summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2017-04-05 13:39:42 +0200
committerThomas Haller <thaller@redhat.com>2017-04-05 14:18:55 +0200
commit29dbc21c307967104e22681655e9de2c0ad6894f (patch)
tree919a2ed27dcfc7815ee4326204b2dfb8120eddea
parent3d4d1bedda59bca23799db4d7a437c4a3a0c4be7 (diff)
downloadNetworkManager-29dbc21c307967104e22681655e9de2c0ad6894f.tar.gz
cli: fix leak in add_vpn_secrets()
No need to copy @tmp variable, it was leaked.
-rw-r--r--clients/common/nm-secret-agent-simple.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/clients/common/nm-secret-agent-simple.c b/clients/common/nm-secret-agent-simple.c
index b763bf8985..89cf156bda 100644
--- a/clients/common/nm-secret-agent-simple.c
+++ b/clients/common/nm-secret-agent-simple.c
@@ -399,20 +399,20 @@ add_vpn_secrets (NMSecretAgentSimpleRequest *request,
{
NMSettingVpn *s_vpn = nm_connection_get_setting_vpn (request->connection);
const VpnPasswordName *secret_names, *p;
- char *tmp = NULL;
+ const char *vpn_msg = NULL;
char **iter;
/* If hints are given, then always ask for what the hints require */
- if (request->hints && g_strv_length (request->hints)) {
- for (iter = request->hints; iter && *iter; iter++) {
- if (!tmp && g_str_has_prefix (*iter, VPN_MSG_TAG))
- tmp = g_strdup (*iter + strlen (VPN_MSG_TAG));
+ if (request->hints) {
+ for (iter = request->hints; *iter; iter++) {
+ if (!vpn_msg && g_str_has_prefix (*iter, VPN_MSG_TAG))
+ vpn_msg = &(*iter)[NM_STRLEN (VPN_MSG_TAG)];
else
add_vpn_secret_helper (secrets, s_vpn, *iter, *iter);
}
}
- if (msg)
- *msg = g_strdup (tmp);
+
+ NM_SET_OUT (msg, g_strdup (vpn_msg));
/* Now add what client thinks might be required, because hints may be empty or incomplete */
p = secret_names = nm_vpn_get_secret_names (nm_setting_vpn_get_service_type (s_vpn));