]> source.dussan.org Git - tigervnc.git/commit
Fix -inetd not working with xserver >= 1.19
authorHans de Goede <hdegoede@redhat.com>
Mon, 9 Jan 2017 15:03:30 +0000 (16:03 +0100)
committerPierre Ossman <ossman@cendio.se>
Tue, 10 Jan 2017 14:15:13 +0000 (15:15 +0100)
commit712cf8673d6e57442f41636e44020f5e1839c7f8
treefea237684245bde82440d1578f3e7da7d6efd94e
parent4ece7c5d810228f4d66ec123b5c7486c39f5fd86
Fix -inetd not working with xserver >= 1.19

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>
unix/xserver/hw/vnc/xvnc.c