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)

Reply via email to