Don't segfault in GNetworkMonitor when IPv6 support is unavailable (GNOME BZ #733338)
This commit is contained in:
parent
619cd498cf
commit
2810f88c7b
@ -0,0 +1,26 @@
|
||||
From b844136fd3262e2f5c9696e2184af7d236993605 Mon Sep 17 00:00:00 2001
|
||||
From: Erik van Pienbroek <epienbro@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
|
||||
|
||||
@ -0,0 +1,34 @@
|
||||
From c36872f048824248ff8348eaf66134194becaedc Mon Sep 17 00:00:00 2001
|
||||
From: Erik van Pienbroek <epienbro@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
|
||||
|
||||
@ -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 <kalevlember@gmail.com> - 2.44.0-2
|
||||
- Add back two accidentally dropped GNetworkMonitor crasher fixes
|
||||
(GNOME BZ #733338)
|
||||
|
||||
* Tue Mar 24 2015 Kalev Lember <kalevlember@gmail.com> - 2.44.0-1
|
||||
- Update to 2.44.0
|
||||
- Use license macro for the COPYING file
|
||||
|
||||
Loading…
Reference in New Issue
Block a user