about summary refs log tree commit diff
path: root/clients/common
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2018-09-15 01:05:35 +0200
committerMichael Biebl <biebl@debian.org>2018-09-15 01:05:35 +0200
commitd1148fc0e24d30260606f292db3bb21ba9a6adc5 (patch)
tree5f2251e1da11451b72c9dedbe629e3a90ec5bf13 /clients/common
parentffe03e75298bcd15849e314c8233cb9b696d59a3 (diff)
parentc240974325c552cad177c457d6ff04e381fd77a3 (diff)
Update upstream source from tag 'upstream/1.14.0'
Update to upstream version '1.14.0'
with Debian dir a85bbd526d758f044876cc0acaa7be950ec06fae
Diffstat (limited to 'clients/common')
-rw-r--r--clients/common/nm-meta-setting-desc.c13
-rw-r--r--clients/common/nm-secret-agent-simple.c2
-rw-r--r--clients/common/nm-secret-agent-simple.h2
3 files changed, 13 insertions, 4 deletions
diff --git a/clients/common/nm-meta-setting-desc.c b/clients/common/nm-meta-setting-desc.c
index 8c27779e..f794c67b 100644
--- a/clients/common/nm-meta-setting-desc.c
+++ b/clients/common/nm-meta-setting-desc.c
@@ -192,11 +192,20 @@ _parse_ip_route (int family,
 				return NULL;
 			}
 
-			if (!attrs)
-				attrs = g_hash_table_new (nm_str_hash, g_str_equal);
+			if (!attrs) {
+				attrs = g_hash_table_new_full (nm_str_hash,
+				                               g_str_equal,
+				                               g_free,
+				                               (GDestroyNotify) g_variant_unref);
+			}
 
 			g_hash_table_iter_init (&iter, tmp_attrs);
 			while (g_hash_table_iter_next (&iter, (gpointer *) &iter_key, (gpointer *) &iter_value)) {
+
+				/* need to sink the reference, because nm_utils_parse_variant_attributes() returns
+				 * floating refs. */
+				g_variant_ref_sink (iter_value);
+
 				if (!nm_ip_route_attribute_validate (iter_key, iter_value, family, NULL, error)) {
 					g_prefix_error (error, "%s: ", iter_key);
 					g_hash_table_unref (tmp_attrs);
diff --git a/clients/common/nm-secret-agent-simple.c b/clients/common/nm-secret-agent-simple.c
index 7048e0ef..cab0c15a 100644
--- a/clients/common/nm-secret-agent-simple.c
+++ b/clients/common/nm-secret-agent-simple.c
@@ -195,7 +195,7 @@ nm_secret_agent_simple_secret_new (NMSecretAgentSecretType secret_type,
 		real->base.is_secret = (secret_type != NM_SECRET_AGENT_SECRET_TYPE_PROPERTY);
 		break;
 	case NM_SECRET_AGENT_SECRET_TYPE_VPN_SECRET:
-		vpn_prefix = NM_SECRET_AGENT_ENTRY_ID_PREFX_VPN_SECRET;
+		vpn_prefix = NM_SECRET_AGENT_ENTRY_ID_PREFX_VPN_SECRETS;
 		value = nm_setting_vpn_get_secret (NM_SETTING_VPN (setting), property);
 		real->base.entry_id = g_strdup_printf ("%s%s", vpn_prefix, property);
 		nm_assert (vpn_type);
diff --git a/clients/common/nm-secret-agent-simple.h b/clients/common/nm-secret-agent-simple.h
index 505987df..529aaeac 100644
--- a/clients/common/nm-secret-agent-simple.h
+++ b/clients/common/nm-secret-agent-simple.h
@@ -56,7 +56,7 @@ typedef struct {
 	gboolean is_secret;
 } NMSecretAgentSimpleSecret;
 
-#define NM_SECRET_AGENT_ENTRY_ID_PREFX_VPN_SECRET "vpn.secret."
+#define NM_SECRET_AGENT_ENTRY_ID_PREFX_VPN_SECRETS "vpn.secrets."
 
 #define NM_SECRET_AGENT_VPN_TYPE_OPENCONNECT  NM_DBUS_INTERFACE".openconnect"