aboutsummaryrefslogtreecommitdiff
path: root/debian/patches
diff options
context:
space:
mode:
authorMihai Moldovan <ionic@ionic.de>2017-11-04 07:45:09 +0100
committerMihai Moldovan <ionic@ionic.de>2017-11-04 08:01:54 +0100
commite095b8f6bd4497c371df7ffda31597aa032a597e (patch)
tree797cb66e948ae7dd2d6d19508aeffe63cafa015f /debian/patches
parent288cc6fec0826234fd6de145ab6cb284bdd2280b (diff)
downloadnx-libs-e095b8f6bd4497c371df7ffda31597aa032a597e.tar.gz
nx-libs-e095b8f6bd4497c371df7ffda31597aa032a597e.tar.bz2
nx-libs-e095b8f6bd4497c371df7ffda31597aa032a597e.zip
nxcomp: Handle launchd sockets in DISPLAY variable correctly when fetching X cookie.
Backported from Arctica GH 3.6.x branch. v2: backport to nx-libs 3.5.0.x (Mihai Moldovan) Adds: - debian/patches/1600_nxcomp-handle-launchd-socket-in-Auth.full+lite.patch
Diffstat (limited to 'debian/patches')
-rw-r--r--debian/patches/1600_nxcomp-handle-launchd-socket-in-Auth.full+lite.patch60
-rw-r--r--debian/patches/series1
2 files changed, 61 insertions, 0 deletions
diff --git a/debian/patches/1600_nxcomp-handle-launchd-socket-in-Auth.full+lite.patch b/debian/patches/1600_nxcomp-handle-launchd-socket-in-Auth.full+lite.patch
new file mode 100644
index 000000000..d9726dc39
--- /dev/null
+++ b/debian/patches/1600_nxcomp-handle-launchd-socket-in-Auth.full+lite.patch
@@ -0,0 +1,60 @@
+From bd25453bd41957079c7516adf407b8785ef22f1f Mon Sep 17 00:00:00 2001
+From: Mihai Moldovan <ionic@ionic.de>
+Date: Fri, 3 Nov 2017 12:30:12 +0100
+Subject: [PATCH] nxcomp/src/Auth.cpp: handle launchd sockets in DISPLAY
+ variable correctly when fetching X cookie.
+
+Backported from Arctica GH 3.6.x branch.
+
+v2: backport to nx-libs 3.5.0.x (Mihai Moldovan)
+---
+ nxcomp/src/Auth.cpp | 26 +++++++++++++++++++++++---
+ 1 file changed, 23 insertions(+), 3 deletions(-)
+
+--- a/nxcomp/Auth.cpp
++++ b/nxcomp/Auth.cpp
+@@ -267,11 +267,33 @@ int Auth::getCookie()
+ //
+
+ char line[DEFAULT_STRING_LIMIT];
++ FILE *data = NULL;
++ int result = -1;
+
+ if (strncmp(display_, "localhost:", 10) == 0)
+ {
+ snprintf(line, DEFAULT_STRING_LIMIT, "unix:%s", display_ + 10);
+ }
++ else if ((0 == strncasecmp(display_, "/tmp/launch", 11)) || (0 == strncasecmp(display_, "/private/tmp/com.apple.launchd", 30)))
++ {
++ /*
++ * Launchd socket support, mostly for OS X, but maybe also other BSD derivates.
++ */
++ const char *separator = strrchr(display_, ':');
++
++ if ((NULL == separator) || (!isdigit(*(separator + 1))))
++ {
++ #ifdef PANIC
++ *logofs << "Auth: PANIC! Unable to find separating colon character '"
++ << "in launchd socket path '" << display_
++ << "'.\n" << logofs_flush;
++ #endif
++
++ goto AuthGetCookieResult;
++ }
++
++ snprintf(line, DEFAULT_STRING_LIMIT, "unix:%s", separator + 1);
++ }
+ else
+ {
+ snprintf(line, DEFAULT_STRING_LIMIT, "%.200s", display_);
+@@ -304,9 +326,7 @@ int Auth::getCookie()
+ // implementation.
+ //
+
+- FILE *data = Popen((char *const *) parameters, "r");
+-
+- int result = -1;
++ data = Popen((char *const *) parameters, "r");
+
+ if (data == NULL)
+ {
diff --git a/debian/patches/series b/debian/patches/series
index fa84f83ac..a497ed27e 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -152,6 +152,7 @@
1301_nxcomp_Reduce-TokenSize-slightly-for.full+lite.patch
1400_nx-X11_Render.c-Improve-situation-fo.full+lite.patch
1500_all_propagate-optflags-to-subcompone.full+lite.patch
+1600_nxcomp-handle-launchd-socket-in-Auth.full+lite.patch
9900-dxpc-license-history.full+lite.patch
0016_nx-X11_install-location.debian.patch
0102_xserver-xext_set-securitypolicy-path.debian.patch