Bug#986766: unblock: openbox/3.6.1-9+deb11u1
Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock
Please unblock package openbox
[ Reason ]
This changes fixed infinite loop when openbox is running with > 2 screens
[ Impact ]
Same as above.
[ Tests ]
No tests affected.
[ Risks ]
Zero risks. Patch fixed multi monitor configuration.
diff -Nru openbox-3.6.1/debian/changelog openbox-3.6.1/debian/changelog
--- openbox-3.6.1/debian/changelog 2020-03-17 18:22:37.000000000 +0100
+++ openbox-3.6.1/debian/changelog 2021-03-18 22:11:13.000000000 +0100
@@ -1,3 +1,11 @@
+openbox (3.6.1-9+deb11u1) unstable; urgency=medium
+
+ [ dann frazier ]
+ * When running with > 2 screens, avoid calling XQueryPointer() in an
+ infinite loop. (Closes: #983882)
+
+ -- Mateusz Łukasik <mati75@linuxmint.pl> Thu, 18 Mar 2021 22:11:13 +0100
+
openbox (3.6.1-9) unstable; urgency=medium
* Switch to python3. (Closes: #887122 #886716) (LP: #1816473)
diff -Nru openbox-3.6.1/debian/patches/Fix-collision-between-iterator-and-throw-away-argume.patch openbox-3.6.1/debian/patches/Fix-collision-between-iterator-and-throw-away-argume.patch
--- openbox-3.6.1/debian/patches/Fix-collision-between-iterator-and-throw-away-argume.patch 1970-01-01 01:00:00.000000000 +0100
+++ openbox-3.6.1/debian/patches/Fix-collision-between-iterator-and-throw-away-argume.patch 2021-03-18 22:10:53.000000000 +0100
@@ -0,0 +1,38 @@
+From: Alex Goins <agoins@nvidia.com>
+Date: Thu, 18 Feb 2021 21:25:22 -0600
+Subject: [PATCH] Fix collision between iterator and throw-away argument to
+ XQueryPointer()
+
+Without this, Openbox is unstable on any setup with more than 2 X screens, as
+the collision can make the loop infinitely call XQueryPointer() on X screen 1.
+
+Bug-Debian: https://bugs.debian.org/983882
+Bug-Ubuntu: https://bugs.launchpad.net/bugs/1917516
+Origin: https://github.com/AlexGoinsNV/openbox-multiXscreen-bugfix/commit/2635c87d160aa5f6f9e91e290678e99111788d57
+Last-Updated: 2021-03-02
+
+Index: openbox-debian/openbox/screen.c
+===================================================================
+--- openbox-debian.orig/openbox/screen.c
++++ openbox-debian/openbox/screen.c
+@@ -1908,16 +1908,16 @@ guint screen_monitor_pointer()
+ gboolean screen_pointer_pos(gint *x, gint *y)
+ {
+ Window w;
+- gint i;
++ gint i, scrnindex;
+ guint u;
+ gboolean ret;
+
+ ret = !!XQueryPointer(obt_display, obt_root(ob_screen),
+ &w, &w, x, y, &i, &i, &u);
+ if (!ret) {
+- for (i = 0; i < ScreenCount(obt_display); ++i)
+- if (i != ob_screen)
+- if (XQueryPointer(obt_display, obt_root(i),
++ for (scrnindex = 0; scrnindex < ScreenCount(obt_display); ++scrnindex)
++ if (scrnindex != ob_screen)
++ if (XQueryPointer(obt_display, obt_root(scrnindex),
+ &w, &w, x, y, &i, &i, &u))
+ break;
+ }
diff -Nru openbox-3.6.1/debian/patches/series openbox-3.6.1/debian/patches/series
--- openbox-3.6.1/debian/patches/series 2020-03-15 17:26:18.000000000 +0100
+++ openbox-3.6.1/debian/patches/series 2021-03-18 22:11:00.000000000 +0100
@@ -22,3 +22,4 @@
887908.patch
917204_undecorated_maximized_no_border.patch
python3.patch
+Fix-collision-between-iterator-and-throw-away-argume.patch
Reply to: