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 +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 +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 dbe8a4d..c4c68b9 100644 --- a/mingw-glib2.spec +++ b/mingw-glib2.spec @@ -2,7 +2,7 @@ Name: mingw-glib2 Version: 2.44.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: MinGW Windows GLib2 library License: LGPLv2+ @@ -53,6 +53,10 @@ Patch3: glib-send-log-messages-to-correct-stdout-and-stderr.patch # https://bugzilla.gnome.org/show_bug.cgi?id=698118 Patch5: glib-prefer-constructors-over-DllMain.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. @@ -98,6 +102,8 @@ Static version of the MinGW Windows GLib2 library. %patch1 -p1 %patch3 -p0 %patch5 -p1 +%patch7 -p1 +%patch8 -p1 %build @@ -278,6 +284,10 @@ find $RPM_BUILD_ROOT -name "*.la" -delete %changelog +* Mon Apr 20 2015 Kalev Lember - 2.44.0-2 +- Add back two accidentally dropped GNetworkMonitor crasher fixes + (GNOME BZ #733338) + * Tue Mar 24 2015 Kalev Lember - 2.44.0-1 - Update to 2.44.0 - Use license macro for the COPYING file