Date: Thursday, January 26, 2017 @ 11:35:30
  Author: heftig
Revision: 287502

1.4.4-3: fix heap corruption

Added:
  network-manager-applet/trunk/crash.diff
Modified:
  network-manager-applet/trunk/PKGBUILD

------------+
 PKGBUILD   |    9 ++++++---
 crash.diff |   26 ++++++++++++++++++++++++++
 2 files changed, 32 insertions(+), 3 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD    2017-01-26 09:50:37 UTC (rev 287501)
+++ PKGBUILD    2017-01-26 11:35:30 UTC (rev 287502)
@@ -11,7 +11,7 @@
 pkgdesc="Applet for managing network connections"
 url="https://wiki.gnome.org/Projects/NetworkManager/";
 pkgver=1.4.4
-pkgrel=2
+pkgrel=3
 arch=(i686 x86_64)
 license=(GPL2 LGPL2.1)
 depends=(libnm-glib libgudev gtk3 mobile-broadband-provider-info iso-codes)
@@ -18,8 +18,10 @@
 makedepends=(libsecret libnotify libmm-glib intltool gobject-introspection git)
 options=(!emptydirs)
 _commit=da51a3a0373ac6f6429ed3eb2211e56a363c8b94  # tags/1.4.4^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";
+        crash.diff)
+sha256sums=('SKIP'
+            'b529c587dd541a3ffb4f364deab0e17e3c7c02b9ca8109f824185660c53c7c5b')
 
 pkgver() {
   cd $pkgbase
@@ -30,6 +32,7 @@
   mkdir -p nma/etc/xdg nma/usr/bin \
     nma/usr/share/{applications,icons/hicolor/22x22/apps,man/man1,nm-applet}
   cd $pkgbase
+  patch -Np1 -i ../crash.diff
   NOCONFIGURE=1 ./autogen.sh
 }
 

Added: crash.diff
===================================================================
--- crash.diff                          (rev 0)
+++ crash.diff  2017-01-26 11:35:30 UTC (rev 287502)
@@ -0,0 +1,26 @@
+diff --git i/src/connection-editor/page-master.c 
w/src/connection-editor/page-master.c
+index 42d97da0771a7749..e73c08f5080e21fe 100644
+--- i/src/connection-editor/page-master.c
++++ w/src/connection-editor/page-master.c
+@@ -196,16 +196,18 @@ get_device_for_connection (NMClient *client, 
NMConnection *conn)
+       if (   !nm_setting_connection_get_interface_name (s_con)
+              && !nm_connection_get_interface_name (conn)) {
+               NMSetting *s_hw;
+-              GByteArray *mac_address;
++              gchar *mac_address;
+ 
+               s_hw = nm_connection_get_setting_by_name (conn, 
nm_setting_connection_get_connection_type (s_con));
+               if (!s_hw || !g_object_class_find_property (G_OBJECT_GET_CLASS 
(s_hw), "mac-address"))
+                       return NULL;
+ 
+               g_object_get (G_OBJECT (s_hw), "mac-address", &mac_address, 
NULL);
+-              if (!mac_address)
++              if (!mac_address || !mac_address[0]) {
++                      g_free (mac_address);
+                       return NULL;
+-              g_byte_array_unref (mac_address);
++              }
++              g_free (mac_address);
+       }
+ 
+       /* OK, now find that device */

Reply via email to