Bug#929500: unblock: nx-libs/2:3.5.99.19-3
Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock
Please unblock package nx-libs
+ + Add 0003_xkbUtils.c-Catch-division-by-zero.patch.
+ Catch occasional division-by-zero error. (Closes: #929498).
Users reported division by zero errors, see
https://github.com/ArcticaProject/nx-libs/issues/808
+ + Add 0004_libNX_X11-add-additional-checks-for-dpy-and-xkb.patch.
+ Don't reference dpy nor xkb if undefined. (Closes: #929499).
Users reported crashes in XKeycodeToKeysym()
https://github.com/ArcticaProject/nx-libs/issues/801
Thanks+Greets,
Mike
unblock nx-libs/2:3.5.99.19-3
-- System Information:
Debian Release: buster/sid
APT prefers testing
APT policy: (500, 'testing')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 4.19.0-4-amd64 (SMP w/4 CPU cores)
Kernel taint flags: TAINT_WARN, TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
diff -Nru nx-libs-3.5.99.19/debian/changelog nx-libs-3.5.99.19/debian/changelog
--- nx-libs-3.5.99.19/debian/changelog 2019-05-12 11:08:25.000000000 +0200
+++ nx-libs-3.5.99.19/debian/changelog 2019-05-24 22:27:02.000000000 +0200
@@ -1,7 +1,17 @@
+nx-libs (2:3.5.99.19-3) unstable; urgency=medium
+
+ * debian/patches (cherry-picked from upstream):
+ + Add 0003_xkbUtils.c-Catch-division-by-zero.patch.
+ Catch occasional division-by-zero error. (Closes: #929498).
+ + Add 0004_libNX_X11-add-additional-checks-for-dpy-and-xkb.patch.
+ Don't reference dpy nor xkb if undefined. (Closes: #929499).
+
+ -- Mike Gabriel <sunweaver@debian.org> Fri, 24 May 2019 22:27:02 +0200
+
nx-libs (2:3.5.99.19-2) unstable; urgency=medium
* debian/patches (cherry-picked from upstream):
- + Add 0001_nxagent-Determine-nxagentProgName-only-once.patch. Keep flavour
+ + Add 0001_nxagent-Determine-nxagentProgName-only-once.patch. Keep flavour
mode (i.e., running as nxagent or x2goagent) after session resumptions.
(Closes: #928760).
+ Add 0002_nxdialog-bin-nxdialog-Fix-error-dialog-type-not-supp.patch.
diff -Nru nx-libs-3.5.99.19/debian/patches/0003_xkbUtils.c-Catch-division-by-zero.patch nx-libs-3.5.99.19/debian/patches/0003_xkbUtils.c-Catch-division-by-zero.patch
--- nx-libs-3.5.99.19/debian/patches/0003_xkbUtils.c-Catch-division-by-zero.patch 1970-01-01 01:00:00.000000000 +0100
+++ nx-libs-3.5.99.19/debian/patches/0003_xkbUtils.c-Catch-division-by-zero.patch 2019-05-24 21:53:48.000000000 +0200
@@ -0,0 +1,28 @@
+From 4df77fe73fe03dc3098190f3702c0d5ab415968a Mon Sep 17 00:00:00 2001
+From: Ulrich Sibiller <uli42@gmx.de>
+Date: Wed, 15 May 2019 19:42:29 +0200
+Subject: [PATCH 1/2] xkbUtils.c: Catch division by zero
+
+Fixes ArcticaProject/nx-libs#808
+---
+ nx-X11/programs/Xserver/xkb/xkbUtils.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/nx-X11/programs/Xserver/xkb/xkbUtils.c b/nx-X11/programs/Xserver/xkb/xkbUtils.c
+index 028f32454..21a5ce76a 100644
+--- a/nx-X11/programs/Xserver/xkb/xkbUtils.c
++++ b/nx-X11/programs/Xserver/xkb/xkbUtils.c
+@@ -685,6 +685,10 @@ unsigned act;
+ else group= newGroup;
+ }
+ else {
++#ifdef NXAGENT_SERVER
++ /* we have seen division by zero here */
++ if (ctrls->num_groups != 0)
++#endif
+ group%= ctrls->num_groups;
+ }
+ }
+--
+2.20.1
+
diff -Nru nx-libs-3.5.99.19/debian/patches/0004_libNX_X11-add-additional-checks-for-dpy-and-xkb.patch nx-libs-3.5.99.19/debian/patches/0004_libNX_X11-add-additional-checks-for-dpy-and-xkb.patch
--- nx-libs-3.5.99.19/debian/patches/0004_libNX_X11-add-additional-checks-for-dpy-and-xkb.patch 1970-01-01 01:00:00.000000000 +0100
+++ nx-libs-3.5.99.19/debian/patches/0004_libNX_X11-add-additional-checks-for-dpy-and-xkb.patch 2019-05-24 21:53:48.000000000 +0200
@@ -0,0 +1,44 @@
+From 20353e96a390a029f7b3b18fc7ddd82eae98b935 Mon Sep 17 00:00:00 2001
+From: Ulrich Sibiller <uli42@gmx.de>
+Date: Wed, 15 May 2019 19:54:24 +0200
+Subject: [PATCH 2/2] libNX_X11: add additional checks for dpy and xkb
+
+We have seen crashes during session shutdown/connection problems
+here. These patches should avoid them. There's no proper way to test
+them, but they should do no harm..
+
+Fixes ArcticaProject/nx-libs#801
+Fixes https://bugs.x2go.org/cgi-bin/bugreport.cgi?bug=695
+---
+ nx-X11/lib/src/xkb/XKBBind.c | 14 ++++++++++++++
+ 1 file changed, 14 insertions(+)
+
+diff --git a/nx-X11/lib/src/xkb/XKBBind.c b/nx-X11/lib/src/xkb/XKBBind.c
+index 068e8f2a0..ffe5ad9d7 100644
+--- a/nx-X11/lib/src/xkb/XKBBind.c
++++ b/nx-X11/lib/src/xkb/XKBBind.c
+@@ -108,7 +108,21 @@ XKeycodeToKeysym(Display *dpy,
+
+ _XkbCheckPendingRefresh(dpy, dpy->xkb_info);
+
++#ifdef NX_TRANS_SOCKET
++ /*
++ check again, we have seen cases where the connection broke
++ during CheckPendingEvents(), followed by a crash when accessing
++ dpy. See https://github.com/ArcticaProject/nx-libs/issues/801
++ */
++ if (_XkbUnavailable(dpy))
++ return _XKeycodeToKeysym(dpy, kc, col);
++#endif
++
+ xkb = dpy->xkb_info->desc;
++#ifdef NX_TRANS_SOCKET
++ if (xkb == NULL)
++ return _XKeycodeToKeysym(dpy, kc, col);
++#endif
+ if ((kc < xkb->min_key_code) || (kc > xkb->max_key_code))
+ return NoSymbol;
+
+--
+2.20.1
+
diff -Nru nx-libs-3.5.99.19/debian/patches/series nx-libs-3.5.99.19/debian/patches/series
--- nx-libs-3.5.99.19/debian/patches/series 2019-05-12 11:05:58.000000000 +0200
+++ nx-libs-3.5.99.19/debian/patches/series 2019-05-24 21:54:36.000000000 +0200
@@ -4,3 +4,5 @@
2004_enforce-lpthread.patch
0001_nxagent-Determine-nxagentProgName-only-once.patch
0002_nxdialog-bin-nxdialog-Fix-error-dialog-type-not-supp.patch
+0003_xkbUtils.c-Catch-division-by-zero.patch
+0004_libNX_X11-add-additional-checks-for-dpy-and-xkb.patch
Reply to: