diff --git a/0005-libvncserver-sockets.c-do-not-segfault-when-listenSo.patch b/0005-libvncserver-sockets.c-do-not-segfault-when-listenSo.patch new file mode 100644 index 0000000..1d2a4cb --- /dev/null +++ b/0005-libvncserver-sockets.c-do-not-segfault-when-listenSo.patch @@ -0,0 +1,29 @@ +From 66282f58000c8863e104666c30cb67b1d5cbdee3 Mon Sep 17 00:00:00 2001 +From: "Kyle J. McKay" +Date: Fri, 18 May 2012 00:30:11 -0700 +Subject: [PATCH 05/32] libvncserver/sockets.c: do not segfault when + listenSock/listen6Sock == -1 + +--- + libvncserver/sockets.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/libvncserver/sockets.c b/libvncserver/sockets.c +index 84c9c98..3ff2aac 100644 +--- a/libvncserver/sockets.c ++++ b/libvncserver/sockets.c +@@ -402,9 +402,9 @@ rfbProcessNewConnection(rfbScreenInfoPtr rfbScreen) + rfbLogPerror("rfbProcessNewConnection: error in select"); + return FALSE; + } +- if (FD_ISSET(rfbScreen->listenSock, &listen_fds)) ++ if (rfbScreen->listenSock >= 0 && FD_ISSET(rfbScreen->listenSock, &listen_fds)) + chosen_listen_sock = rfbScreen->listenSock; +- if (FD_ISSET(rfbScreen->listen6Sock, &listen_fds)) ++ if (rfbScreen->listen6Sock >= 0 && FD_ISSET(rfbScreen->listen6Sock, &listen_fds)) + chosen_listen_sock = rfbScreen->listen6Sock; + + if ((sock = accept(chosen_listen_sock, +-- +1.8.3.1 + diff --git a/0010-Patched-sockets.c-to-allow-the-use-of-IPv6-without-I.patch b/0010-Patched-sockets.c-to-allow-the-use-of-IPv6-without-I.patch new file mode 100644 index 0000000..98e680f --- /dev/null +++ b/0010-Patched-sockets.c-to-allow-the-use-of-IPv6-without-I.patch @@ -0,0 +1,48 @@ +From 584542ba97d35706a9e5c001b5cdf64296b5dd7f Mon Sep 17 00:00:00 2001 +From: Oliver Loch +Date: Wed, 8 Aug 2012 22:09:13 +0200 +Subject: [PATCH 10/32] Patched sockets.c to allow the use of IPv6 without + IPv4. + +As requested only those lines are indented that have been changed. +--- + libvncserver/sockets.c | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/libvncserver/sockets.c b/libvncserver/sockets.c +index 3ff2aac..15b40ac 100644 +--- a/libvncserver/sockets.c ++++ b/libvncserver/sockets.c +@@ -176,7 +176,9 @@ rfbInitSockets(rfbScreenInfoPtr rfbScreen) + rfbScreen->maxFd = max((int)rfbScreen->listen6Sock,rfbScreen->maxFd); + #endif + } +- else if(rfbScreen->port>0) { ++ else ++ { ++ if(rfbScreen->port>0) { + FD_ZERO(&(rfbScreen->allFds)); + + if ((rfbScreen->listenSock = rfbListenOnTCPPort(rfbScreen->port, iface)) < 0) { +@@ -187,8 +189,10 @@ rfbInitSockets(rfbScreenInfoPtr rfbScreen) + + FD_SET(rfbScreen->listenSock, &(rfbScreen->allFds)); + rfbScreen->maxFd = rfbScreen->listenSock; ++ } + + #ifdef LIBVNCSERVER_IPv6 ++ if (rfbScreen->ipv6port>0) { + if ((rfbScreen->listen6Sock = rfbListenOnTCP6Port(rfbScreen->ipv6port, rfbScreen->listen6Interface)) < 0) { + /* ListenOnTCP6Port has its own detailed error printout */ + return; +@@ -197,6 +201,7 @@ rfbInitSockets(rfbScreenInfoPtr rfbScreen) + + FD_SET(rfbScreen->listen6Sock, &(rfbScreen->allFds)); + rfbScreen->maxFd = max((int)rfbScreen->listen6Sock,rfbScreen->maxFd); ++ } + #endif + + } +-- +1.8.3.1 + diff --git a/libvncserver.spec b/libvncserver.spec index e13d343..77bc0d6 100644 --- a/libvncserver.spec +++ b/libvncserver.spec @@ -2,7 +2,7 @@ Summary: Library to make writing a vnc server easy Name: libvncserver Version: 0.9.9 -Release: 10%{?dist} +Release: 11%{?dist} # NOTE: --with-tightvnc-filetransfer => GPLv2 License: GPLv2+ @@ -16,6 +16,10 @@ Patch2: libvncserver-0.9.1-multilib.patch # pkgconfig love (upstreamable) Patch3: LibVNCServer-0.9.9-pkgconfig.patch +## upstream patches +Patch105: 0005-libvncserver-sockets.c-do-not-segfault-when-listenSo.patch +Patch110: 0010-Patched-sockets.c-to-allow-the-use-of-IPv6-without-I.patch + # upstream name Obsoletes: LibVNCServer < 0.9.1 Provides: LibVNCServer = %{version}-%{release} @@ -60,6 +64,9 @@ Provides: LibVNCServer-devel = %{version}-%{release} %prep %setup -q -n LibVNCServer-%{version} +%patch105 -p1 -b .0005 +%patch110 -p1 -b .0010 + %patch0 -p1 -b .no_x11vnc %patch1 -p1 -b .system_minilzo #nuke bundled minilzo @@ -128,6 +135,10 @@ xvfb-run -a make -C test test ||: %changelog +* Mon Mar 31 2014 Rex Dieter 0.9.9-11 +- x11vnc crash when client connect (#972618) + pull in some upstream commits that may help + * Sat Dec 21 2013 Rex Dieter - 0.9.9-10 - include additional dependencies for x11vnc (#864947) - %%build: --disable-silent-rules