[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