[mingw-glib2/f20] Don't segfault in GNetworkMonitor when IPv6 support is unavailable (GNOME BZ #733338)

Erik van Pienbroek epienbro at fedoraproject.org
Thu Jul 17 20:02:53 UTC 2014


commit b574d9a08ef7e5d8724e162e2dfbd88bb247d437
Author: Erik van Pienbroek <epienbro at fedoraproject.org>
Date:   Thu Jul 17 22:03:15 2014 +0200

    Don't segfault in GNetworkMonitor when IPv6 support is unavailable (GNOME BZ #733338)

 ...t_address_mask_equal-against-invalid-inpu.patch |   26 +++++++++++++++
 ...itorBase-don-t-fail-when-IPv6-support-is-.patch |   34 ++++++++++++++++++++
 mingw-glib2.spec                                   |   12 ++++++-
 3 files changed, 71 insertions(+), 1 deletions(-)
---
diff --git a/0001-Guard-g_inet_address_mask_equal-against-invalid-inpu.patch b/0001-Guard-g_inet_address_mask_equal-against-invalid-inpu.patch
new file mode 100644
index 0000000..87bd262
--- /dev/null
+++ b/0001-Guard-g_inet_address_mask_equal-against-invalid-inpu.patch
@@ -0,0 +1,26 @@
+From b844136fd3262e2f5c9696e2184af7d236993605 Mon Sep 17 00:00:00 2001
+From: Erik van Pienbroek <epienbro at fedoraproject.org>
+Date: Thu, 17 Jul 2014 18:37:04 +0200
+Subject: [PATCH 1/2] Guard g_inet_address_mask_equal against invalid input
+
+---
+ gio/ginetaddressmask.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/gio/ginetaddressmask.c b/gio/ginetaddressmask.c
+index b33c2f9..dda0d4c 100644
+--- a/gio/ginetaddressmask.c
++++ b/gio/ginetaddressmask.c
+@@ -465,6 +465,9 @@ gboolean
+ g_inet_address_mask_equal (GInetAddressMask  *mask,
+ 			   GInetAddressMask  *mask2)
+ {
++  g_return_val_if_fail(G_IS_INET_ADDRESS_MASK (mask), FALSE);
++  g_return_val_if_fail(G_IS_INET_ADDRESS_MASK (mask2), FALSE);
++
+   return ((mask->priv->length == mask2->priv->length) &&
+ 	  g_inet_address_equal (mask->priv->addr, mask2->priv->addr));
+ }
+-- 
+2.0.1
+
diff --git a/0002-GNetworkMonitorBase-don-t-fail-when-IPv6-support-is-.patch b/0002-GNetworkMonitorBase-don-t-fail-when-IPv6-support-is-.patch
new file mode 100644
index 0000000..b85d63e
--- /dev/null
+++ b/0002-GNetworkMonitorBase-don-t-fail-when-IPv6-support-is-.patch
@@ -0,0 +1,34 @@
+From c36872f048824248ff8348eaf66134194becaedc Mon Sep 17 00:00:00 2001
+From: Erik van Pienbroek <epienbro at fedoraproject.org>
+Date: Thu, 17 Jul 2014 21:24:28 +0200
+Subject: [PATCH 2/2] GNetworkMonitorBase: don't fail when IPv6 support is
+ unavailable
+
+---
+ gio/gnetworkmonitorbase.c | 10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+diff --git a/gio/gnetworkmonitorbase.c b/gio/gnetworkmonitorbase.c
+index ead9e64..26837b0 100644
+--- a/gio/gnetworkmonitorbase.c
++++ b/gio/gnetworkmonitorbase.c
+@@ -99,8 +99,14 @@ g_network_monitor_base_constructed (GObject *object)
+       g_object_unref (mask);
+ 
+       mask = g_inet_address_mask_new_from_string ("::/0", NULL);
+-      g_network_monitor_base_add_network (monitor, mask);
+-      g_object_unref (mask);
++      if (mask)
++        {
++          /* On some environments (for example Windows without IPv6 support
++           * enabled) the string "::/0" can't be processed and causes
++           * g_inet_address_mask_new_from_string to return NULL */
++          g_network_monitor_base_add_network (monitor, mask);
++          g_object_unref (mask);
++        }
+     }
+ }
+ 
+-- 
+2.0.1
+
diff --git a/mingw-glib2.spec b/mingw-glib2.spec
index 770751b..0f7bbd3 100644
--- a/mingw-glib2.spec
+++ b/mingw-glib2.spec
@@ -2,7 +2,7 @@
 
 Name:           mingw-glib2
 Version:        2.40.0
-Release:        2%{?dist}
+Release:        3%{?dist}
 Summary:        MinGW Windows GLib2 library
 
 License:        LGPLv2+
@@ -59,6 +59,11 @@ Patch5:         glib-prefer-constructors-over-DllMain.patch
 # We can drop this at next glib release.
 Patch6:         glib-update-valgrind-h.patch
 
+# Don't segfault when IPv6 support is unavailable
+# https://bugzilla.gnome.org/show_bug.cgi?id=733338
+Patch7:         0001-Guard-g_inet_address_mask_equal-against-invalid-inpu.patch
+Patch8:         0002-GNetworkMonitorBase-don-t-fail-when-IPv6-support-is-.patch
+
 
 %description
 MinGW Windows Glib2 library.
@@ -105,6 +110,8 @@ Static version of the MinGW Windows GLib2 library.
 %patch3 -p0
 %patch5 -p1
 %patch6 -p1
+%patch7 -p1
+%patch8 -p1
 
 
 %build
@@ -285,6 +292,9 @@ find $RPM_BUILD_ROOT -name "*.la" -delete
 
 
 %changelog
+* Thu Jul 17 2014 Erik van Pienbroek <epienbro at fedoraproject.org> - 2.40.0-3
+- Don't segfault in GNetworkMonitor when IPv6 support is unavailable (GNOME BZ #733338)
+
 * Thu May 15 2014 Richard W.M. Jones <rjones at redhat.com> - 2.40.0-2
 - Fix valgrind support (RHBZ#1095664, GNOME bug 730198).
 


More information about the scm-commits mailing list