Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package openbox for openSUSE:Factory checked in at 2023-05-15 16:54:34 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/openbox (Old) and /work/SRC/openSUSE:Factory/.openbox.new.1533 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openbox" Mon May 15 16:54:34 2023 rev:37 rq:1087167 version:3.6.1 Changes: -------- --- /work/SRC/openSUSE:Factory/openbox/openbox.changes 2015-10-20 00:05:32.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.openbox.new.1533/openbox.changes 2023-05-15 16:54:48.404334132 +0200 @@ -1,0 +2,6 @@ +Sat May 12 01:01:48 UTC 2023 - [email protected] + +- Add openbox-3.6.1-glib-2.76.patch. Fixes random crashes with glib >= 2.76. + See https://bugs.gentoo.org/901777. + +------------------------------------------------------------------- New: ---- openbox-3.6.1-glib-2.76.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ openbox.spec ++++++ --- /var/tmp/diff_new_pack.4Xbb4M/_old 2023-05-15 16:54:49.024337554 +0200 +++ /var/tmp/diff_new_pack.4Xbb4M/_new 2023-05-15 16:54:49.032337598 +0200 @@ -31,6 +31,7 @@ Source4: menu.xml Source5: xcompmgr-autostart Patch1: %name-3.6.1-return.patch +Patch2: %name-3.6.1-glib-2.76.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: fdupes # only for ownership of datadir/share/gnome-sessions/ @@ -121,6 +122,7 @@ %setup -q cp %{S:1} ./README.SUSE %patch1 -p1 +%patch2 -p1 mv po/no.po po/nb.po mv po/no.gmo po/nb.gmo %__perl -p -i -e 's/^no$/nb/' po/LINGUAS ++++++ openbox-3.6.1-glib-2.76.patch ++++++ Gentoo Bug: https://bugs.gentoo.org/901777 Upstream Bug: https://bugzilla.icculus.org/show_bug.cgi?id=6669 Upstream Commit: https://github.com/Mikachu/openbox/commit/9ed6fdd71890c5cc43747f105382d5677e5d37e7 >From 9ed6fdd71890c5cc43747f105382d5677e5d37e7 Mon Sep 17 00:00:00 2001 From: pldubouilh <[email protected]> Date: Fri, 17 Mar 2023 18:23:47 +0100 Subject: [PATCH] Fix list traversal issue in client_calc_layer The calls to client_calc_layer_internal can modify stacking_list, which can cause us to follow dangling ->next pointers (either by the pointer itself already being freed, or it pointing to a freed area). Avoid this by copying the list first, the goal is to visit every client in the list once so this should be fine. --- openbox/client.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/openbox/client.c b/openbox/client.c index 7168b2407..b8264587c 100644 --- a/openbox/client.c +++ b/openbox/client.c @@ -2742,9 +2742,12 @@ static void client_calc_layer_internal(ObClient *self) void client_calc_layer(ObClient *self) { GList *it; + /* the client_calc_layer_internal calls below modify stacking_list, + so we have to make a copy to iterate over */ + GList *list = g_list_copy(stacking_list); /* skip over stuff above fullscreen layer */ - for (it = stacking_list; it; it = g_list_next(it)) + for (it = list; it; it = g_list_next(it)) if (window_layer(it->data) <= OB_STACKING_LAYER_FULLSCREEN) break; /* find the windows in the fullscreen layer, and mark them not-visited */ @@ -2757,7 +2760,7 @@ void client_calc_layer(ObClient *self) client_calc_layer_internal(self); /* skip over stuff above fullscreen layer */ - for (it = stacking_list; it; it = g_list_next(it)) + for (it = list; it; it = g_list_next(it)) if (window_layer(it->data) <= OB_STACKING_LAYER_FULLSCREEN) break; /* now recalc any windows in the fullscreen layer which have not @@ -2768,6 +2771,8 @@ void client_calc_layer(ObClient *self) !WINDOW_AS_CLIENT(it->data)->visited) client_calc_layer_internal(it->data); } + + g_list_free(it); } gboolean client_should_show(ObClient *self)
