public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
From: Kalev Lember <klember@redhat.com>
To: git-commits@fedoraproject.org
Subject: [rpms/glib2] cve-2026-58016-f44: gmain: Partial revert of recent wakeup changes
Date: Tue, 11 Aug 2026 10:36:29 GMT [thread overview]
Message-ID: <178644458968.1.4979663822743867563.rpms-glib2-087ef3ba0f76@fedoraproject.org> (raw)
A new commit has been pushed.
Repo : rpms/glib2
Branch : cve-2026-58016-f44
Commit : 087ef3ba0f761075383df46eae90e76cf7e3fea4
Author : Kalev Lember <klember@redhat.com>
Date : 2018-01-18T12:47:19+01:00
Stats : +114/-1 in 2 file(s)
URL : https://src.fedoraproject.org/rpms/glib2/c/087ef3ba0f761075383df46eae90e76cf7e3fea4?branch=cve-2026-58016-f44
Log:
gmain: Partial revert of recent wakeup changes
https://bugzilla.gnome.org/show_bug.cgi?id=761102
---
diff --git a/0001-gmain-Partial-revert-of-recent-wakeup-changes-to-gma.patch b/0001-gmain-Partial-revert-of-recent-wakeup-changes-to-gma.patch
new file mode 100644
index 0000000..796e8df
--- /dev/null
+++ b/0001-gmain-Partial-revert-of-recent-wakeup-changes-to-gma.patch
@@ -0,0 +1,106 @@
+From 94b38beff1347ec4a733199f7a7abdacaa958678 Mon Sep 17 00:00:00 2001
+From: Philip Withnall <withnall@endlessm.com>
+Date: Wed, 17 Jan 2018 11:38:50 +0000
+Subject: [PATCH] gmain: Partial revert of recent wakeup changes to gmain.c
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This reverts the following commits (but keeps the other recent changes
+to gmain.c):
+ • e4ee3079c Do not wake up main loop if change is from same thread
+ • 208702404 main: Create a helper function for "owner wakeup" optimization
+ • 0c0469b56 gmain: Signal wakeups if context has never been acquired as well
+ • 9ba95e25b gmain: only signal GWakeup right before or during a blocking poll
+
+Some combination of them is causing problems with LibreOffice and/or
+WebKit, and the safest thing to do at the moment is revert them all
+until we work out what’s going on. The previous revert (4976e8109) was
+not sufficient (it fixed WebKit, but re-broken LibreOffice).
+
+By reverting, we gain some spurious wakeups, but avoid dropping
+necessary wakeups, which is presumably what’s causing problems in the
+other modules.
+
+Signed-off-by: Philip Withnall <withnall@endlessm.com>
+
+https://bugzilla.gnome.org/show_bug.cgi?id=761102
+---
+ glib/gmain.c | 33 +++++----------------------------
+ 1 file changed, 5 insertions(+), 28 deletions(-)
+
+diff --git a/glib/gmain.c b/glib/gmain.c
+index 8ca54de3a45b..67102cdf75d0 100644
+--- a/glib/gmain.c
++++ b/glib/gmain.c
+@@ -1118,29 +1118,6 @@ source_remove_from_context (GSource *source,
+ }
+ }
+
+-/* See https://bugzilla.gnome.org/show_bug.cgi?id=761102 for
+- * the introduction of this.
+- *
+- * The main optimization is to avoid waking up the main
+- * context if a change is made by the current owner.
+- */
+-static void
+-conditional_wakeup (GMainContext *context)
+-{
+- /* We want to signal wakeups in two cases:
+- * 1 When the context is owned by another thread
+- * 2 When the context owner is NULL (two subcases)
+- * 2a Possible if the context has never been acquired
+- * 2b Or if the context has no current owner
+- *
+- * At least case 2a) is necessary to ensure backwards compatibility with
+- * qemu's use of GMainContext.
+- * https://bugzilla.gnome.org/show_bug.cgi?id=761102#c14
+- */
+- if (context->owner != G_THREAD_SELF)
+- g_wakeup_signal (context->wakeup);
+-}
+-
+ static guint
+ g_source_attach_unlocked (GSource *source,
+ GMainContext *context,
+@@ -1187,8 +1164,8 @@ g_source_attach_unlocked (GSource *source,
+ /* If another thread has acquired the context, wake it up since it
+ * might be in poll() right now.
+ */
+- if (do_wakeup)
+- conditional_wakeup (context);
++ if (do_wakeup && context->owner && context->owner != G_THREAD_SELF)
++ g_wakeup_signal (context->wakeup);
+
+ return source->source_id;
+ }
+@@ -1878,7 +1855,7 @@ g_source_set_ready_time (GSource *source,
+ {
+ /* Quite likely that we need to change the timeout on the poll */
+ if (!SOURCE_BLOCKED (source))
+- conditional_wakeup (context);
++ g_wakeup_signal (context->wakeup);
+ UNLOCK_CONTEXT (context);
+ }
+ }
+@@ -4318,7 +4295,7 @@ g_main_context_add_poll_unlocked (GMainContext *context,
+ context->poll_changed = TRUE;
+
+ /* Now wake up the main loop if it is waiting in the poll() */
+- conditional_wakeup (context);
++ g_wakeup_signal (context->wakeup);
+ }
+
+ /**
+@@ -4378,7 +4355,7 @@ g_main_context_remove_poll_unlocked (GMainContext *context,
+ context->poll_changed = TRUE;
+
+ /* Now wake up the main loop if it is waiting in the poll() */
+- conditional_wakeup (context);
++ g_wakeup_signal (context->wakeup);
+ }
+
+ /**
+--
+2.14.3
+
diff --git a/glib2.spec b/glib2.spec
index 75a8beb..fefc419 100644
--- a/glib2.spec
+++ b/glib2.spec
@@ -5,13 +5,17 @@
Name: glib2
Version: 2.55.1
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: A library of handy utility functions
License: LGPLv2+
URL: http://www.gtk.org
Source0: http://download.gnome.org/sources/glib/2.55/glib-%{version}.tar.xz
+# Backported from upstream
+# https://bugzilla.gnome.org/show_bug.cgi?id=761102
+Patch0: 0001-gmain-Partial-revert-of-recent-wakeup-changes-to-gma.patch
+
BuildRequires: chrpath
BuildRequires: gettext
BuildRequires: perl-interpreter
@@ -224,6 +228,9 @@ glib-compile-schemas %{_datadir}/glib-2.0/schemas &> /dev/null || :
%{_datadir}/installed-tests
%changelog
+* Thu Jan 18 2018 Kalev Lember <klember@redhat.com> - 2.55.1-2
+- gmain: Partial revert of recent wakeup changes
+
* Mon Jan 08 2018 Kalev Lember <klember@redhat.com> - 2.55.1-1
- Update to 2.55.1
- Drop upstreamed systemtap multilib fix
reply other threads:[~2026-08-11 10:36 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=178644458968.1.4979663822743867563.rpms-glib2-087ef3ba0f76@fedoraproject.org \
--to=klember@redhat.com \
--cc=git-commits@fedoraproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox