Hello community,

here is the log from the commit of package tigervnc for openSUSE:Factory 
checked in at 2017-02-22 13:44:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/tigervnc (Old)
 and      /work/SRC/openSUSE:Factory/.tigervnc.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "tigervnc"

Changes:
--------
--- /work/SRC/openSUSE:Factory/tigervnc/tigervnc.changes        2017-02-03 
20:03:35.323187935 +0100
+++ /work/SRC/openSUSE:Factory/.tigervnc.new/tigervnc.changes   2017-02-22 
13:44:32.373150467 +0100
@@ -1,0 +2,6 @@
+Mon Feb 20 17:43:56 UTC 2017 - [email protected]
+
+- U_tigervnc-fix-inetd-not-working-with-xserver-1-19.patch
+  * Fixes inetd mode with x server 1.19 (bnc#1025759)
+
+-------------------------------------------------------------------

New:
----
  U_tigervnc-fix-inetd-not-working-with-xserver-1-19.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ tigervnc.spec ++++++
--- /var/tmp/diff_new_pack.u7AQXs/_old  2017-02-22 13:44:33.165037677 +0100
+++ /var/tmp/diff_new_pack.u7AQXs/_new  2017-02-22 13:44:33.173036539 +0100
@@ -120,6 +120,7 @@
 Patch8:         u_build_libXvnc_as_separate_library.patch
 Patch9:         u_tigervnc-show-unencrypted-warning.patch
 Patch10:        U_Add-xorg-xserver-1.19-support.patch
+Patch11:        U_tigervnc-fix-inetd-not-working-with-xserver-1-19.patch
 
 %description
 TigerVNC is a high-performance, platform-neutral implementation of VNC 
(Virtual Network Computing), 
@@ -179,6 +180,7 @@
 %patch8 -p1
 %patch9 -p1
 %patch10 -p1
+%patch11 -p1
 
 pushd unix/xserver
 patch -p1 < ../xserver119.patch

++++++ U_tigervnc-fix-inetd-not-working-with-xserver-1-19.patch ++++++
Git-commit: 712cf8673d6e57442f41636e44020f5e1839c7f8
Patch-Mainline: Upstream
Author: Hans de Goede <[email protected]>
Subject: Fix -inetd not working with xserver >= 1.19
Signed-off-by: Michal Srb <[email protected]>

xserver 1.19's OsInit will create a pollfd, followed by checking if fd 2 /
stderr is writable and if it is not, replacing fd 2 with /dev/null.

Since we close stderr in inetd mode to avoid xserver messages being send
to the client as vnc data, the pollfd becomes fd 2, only to be replaced
by /dev/null since a pollfd is not writable.

This commit fixes this by opening /dev/null directly after the close(2),
avoiding that the pollfd becomes fd 2.

Alan Coopersmith: Change to use dup2() for atomic switch of fd

Signed-off-by: Hans de Goede <[email protected]>

diff --git a/unix/xserver/hw/vnc/xvnc.c b/unix/xserver/hw/vnc/xvnc.c
index c5b684d..ef30d69 100644
--- a/unix/xserver/hw/vnc/xvnc.c
+++ b/unix/xserver/hw/vnc/xvnc.c
@@ -572,9 +572,17 @@ ddxProcessArgument(int argc, char *argv[], int i)
 
     if (strcmp(argv[i], "-inetd") == 0)
     {
+       int nullfd;
+
        dup2(0,3);
        vncInetdSock = 3;
-       close(2);
+
+       /* Avoid xserver >= 1.19's epoll-fd becoming fd 2 / stderr only to be
+          replaced by /dev/null by OsInit() because the pollfd is not
+          writable, breaking ospoll_wait(). */
+       nullfd = open("/dev/null", O_WRONLY);
+       dup2(nullfd, 2);
+       close(nullfd);
        
        if (!displaySpecified) {
            int port = vncGetSocketPort(vncInetdSock);

Reply via email to