commit tigervnc for openSUSE:Factory
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 - msrb@suse.com + +- 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 <hdegoede@redhat.com> Subject: Fix -inetd not working with xserver >= 1.19 Signed-off-by: Michal Srb <msrb@suse.com> 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 <hdegoede@redhat.com> 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);
participants (1)
-
root@hilbertn.suse.de