[arch-commits] Commit in network-manager-applet/trunk (2 files)

Jan Steffens heftig at archlinux.org
Wed Dec 20 12:38:46 UTC 2017


    Date: Wednesday, December 20, 2017 @ 12:38:43
  Author: heftig
Revision: 313384

1.8.10-2

Added:
  network-manager-applet/trunk/0001-shared-compat-Fix-memory-handling-of-nm_setting_vpn_.patch
Modified:
  network-manager-applet/trunk/PKGBUILD

-----------------------------------------------------------------+
 0001-shared-compat-Fix-memory-handling-of-nm_setting_vpn_.patch |   64 ++++++++++
 PKGBUILD                                                        |   13 +-
 2 files changed, 73 insertions(+), 4 deletions(-)

Added: 0001-shared-compat-Fix-memory-handling-of-nm_setting_vpn_.patch
===================================================================
--- 0001-shared-compat-Fix-memory-handling-of-nm_setting_vpn_.patch	                        (rev 0)
+++ 0001-shared-compat-Fix-memory-handling-of-nm_setting_vpn_.patch	2017-12-20 12:38:43 UTC (rev 313384)
@@ -0,0 +1,64 @@
+From 6c546a4fe86f3066545b7a8bb2900c19a66f9a2f Mon Sep 17 00:00:00 2001
+Message-Id: <6c546a4fe86f3066545b7a8bb2900c19a66f9a2f.1513772933.git.jan.steffens at gmail.com>
+From: "Jan Alexander Steffens (heftig)" <jan.steffens at gmail.com>
+Date: Wed, 20 Dec 2017 13:23:12 +0100
+Subject: [PATCH] shared/compat: Fix memory handling of
+ nm_setting_vpn_get_*_keys
+
+The compat implementations return a (transfer none) strv instead of a
+(transfer container) one. This has caused double frees in nm-applet:
+https://bugs.archlinux.org/task/56772
+
+Don't copy the keys and don't free the container later.
+---
+ shared/nm-utils/nm-compat.c | 10 +---------
+ 1 file changed, 1 insertion(+), 9 deletions(-)
+
+diff --git a/shared/nm-utils/nm-compat.c b/shared/nm-utils/nm-compat.c
+index 22ab675de8373639..22c31489dd222cd3 100644
+--- a/shared/nm-utils/nm-compat.c
++++ b/shared/nm-utils/nm-compat.c
+@@ -30,39 +30,31 @@ _get_keys_cb (const char *key, const char *val, gpointer user_data)
+ {
+ 	GPtrArray *a = user_data;
+ 
+-	g_ptr_array_add (a, g_strdup (key));
++	g_ptr_array_add (a, key);
+ }
+ 
+ static const char **
+ _get_keys (NMSettingVpn *setting,
+            gboolean is_secrets,
+            guint *out_length)
+ {
+ 	guint len;
+ 	const char **keys = NULL;
+ 	gs_unref_ptrarray GPtrArray *a = NULL;
+ 
+ 	nm_assert (NM_IS_SETTING_VPN (setting));
+ 
+ 	a = g_ptr_array_new ();
+ 	if (is_secrets)
+ 		nm_setting_vpn_foreach_secret (setting, _get_keys_cb, a);
+ 	else
+ 		nm_setting_vpn_foreach_data_item (setting, _get_keys_cb, a);
+ 	len = a->len;
+ 
+ 	if (a->len) {
+ 		g_ptr_array_sort (a, nm_strcmp_p);
+ 		g_ptr_array_add (a, NULL);
+ 		keys = (const char **) g_ptr_array_free (g_steal_pointer (&a), FALSE);
+-
+-		/* we need to cache the keys *somewhere*. */
+-		g_object_set_qdata_full (G_OBJECT (setting),
+-		                         is_secrets
+-		                         ? NM_CACHED_QUARK ("libnm._nm_setting_vpn_get_secret_keys")
+-		                         : NM_CACHED_QUARK ("libnm._nm_setting_vpn_get_data_keys"),
+-		                         keys,
+-		                         (GDestroyNotify) g_strfreev);
+ 	}
+ 
+ 	NM_SET_OUT (out_length, len);
+-- 
+2.15.1
+

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2017-12-20 11:23:09 UTC (rev 313383)
+++ PKGBUILD	2017-12-20 12:38:43 UTC (rev 313384)
@@ -11,7 +11,7 @@
 pkgdesc="Applet for managing network connections"
 url="https://wiki.gnome.org/Projects/NetworkManager/"
 pkgver=1.8.10
-pkgrel=1
+pkgrel=2
 arch=(x86_64)
 license=(GPL2 LGPL2.1)
 depends=(libnm-glib libgudev gtk3 mobile-broadband-provider-info iso-codes gcr)
@@ -18,8 +18,10 @@
 makedepends=(libsecret libnotify libmm-glib intltool gobject-introspection git gtk-doc meson)
 options=(!emptydirs)
 _commit=79bd00df3c1b7eb69db0f890ddb38516d7b4db5e  # tags/1.8.10^0
-source=("git+https://git.gnome.org/browse/network-manager-applet#commit=$_commit")
-sha256sums=('SKIP')
+source=("git+https://git.gnome.org/browse/network-manager-applet#commit=$_commit"
+        0001-shared-compat-Fix-memory-handling-of-nm_setting_vpn_.patch)
+sha256sums=('SKIP'
+            '117e7fab1a930f64bd8ce4c94de2f954a28315b2763bd4c8e1c583b32bd6feaf')
 
 pkgver() {
   cd $pkgbase
@@ -30,6 +32,9 @@
   mkdir -p build nma/etc/xdg nma/usr/bin \
     nma/usr/share/{applications,icons/hicolor/22x22/apps,man/man1,nm-applet}
   cd $pkgbase
+
+  # https://bugs.archlinux.org/task/56772
+  patch -Np1 -i ../0001-shared-compat-Fix-memory-handling-of-nm_setting_vpn_.patch
 }
 
 build() {
@@ -61,7 +66,7 @@
   cd usr/share
   mv "$pkgdir"/usr/share/applications/nm-applet.desktop applications/
   mv "$pkgdir"/usr/share/man/man1/nm-applet.1 man/man1/
-  
+
   cd icons/hicolor/22x22
   mv "$pkgdir"/usr/share/icons/hicolor/22x22/apps/nm-{adhoc,mb-roam,wwan-tower}.png apps/
   mv "$pkgdir"/usr/share/icons/hicolor/22x22/apps/nm-{secure,vpn-active}-lock.png apps/



More information about the arch-commits mailing list