From b854932e022f967cbbd143edcb15b599521a04645888eb69f4c58e7de9c4c500 Mon Sep 17 00:00:00 2001 From: Michal Srb Date: Fri, 9 Jan 2015 13:08:09 +0000 Subject: [PATCH] Accepting request 280582 from home:michalsrb:branches:X11:XOrg - Update to tigervnc 1.4.1 on xorg-server 1.16.1. OBS-URL: https://build.opensuse.org/request/show/280582 OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/tigervnc?expand=0&rev=46 --- n_tigervnc-date-time.patch | 46 ++++--- tigervnc-1.2.80-fix-int-to-pointer.patch | 13 -- tigervnc-1.3.1.tar.bz2 | 3 - tigervnc-1.4.1.tar.gz | 3 + tigervnc-clean-pressed-key-on-exit.patch | 49 +++++--- tigervnc-newfbsize.patch | 17 +-- tigervnc-sf3492352.diff | 15 --- tigervnc.changes | 5 + tigervnc.spec | 56 ++++----- u_aarch64-support.patch | 42 ------- ...ge-and-bitmap-byte-order-for-ppc64le.patch | 38 ------ u_tigervnc-1.3.0-fix-use-after-free.patch | 115 ------------------ u_tigervnc-check-shm-harder.patch | 26 ---- u_tigervnc-cve-2014-8240.patch | 26 ++-- ...c-dont-send-ascii-control-characters.patch | 8 +- xorg-server-1.14.0.tar.bz2 | 3 - xorg-server-1.16.1.tar.bz2 | 3 + 17 files changed, 119 insertions(+), 349 deletions(-) delete mode 100644 tigervnc-1.2.80-fix-int-to-pointer.patch delete mode 100644 tigervnc-1.3.1.tar.bz2 create mode 100644 tigervnc-1.4.1.tar.gz delete mode 100644 tigervnc-sf3492352.diff delete mode 100644 u_aarch64-support.patch delete mode 100644 u_arch-Fix-image-and-bitmap-byte-order-for-ppc64le.patch delete mode 100644 u_tigervnc-1.3.0-fix-use-after-free.patch delete mode 100644 u_tigervnc-check-shm-harder.patch delete mode 100644 xorg-server-1.14.0.tar.bz2 create mode 100644 xorg-server-1.16.1.tar.bz2 diff --git a/n_tigervnc-date-time.patch b/n_tigervnc-date-time.patch index 088420a..2a479cc 100644 --- a/n_tigervnc-date-time.patch +++ b/n_tigervnc-date-time.patch @@ -1,40 +1,54 @@ ---- tigervnc-1.3.1.orig/unix/xserver/hw/vnc/buildtime.c -+++ tigervnc-1.3.1/unix/xserver/hw/vnc/buildtime.c +Index: tigervnc-1.4.1/unix/xserver/hw/vnc/buildtime.c +=================================================================== +--- tigervnc-1.4.1.orig/unix/xserver/hw/vnc/buildtime.c ++++ tigervnc-1.4.1/unix/xserver/hw/vnc/buildtime.c @@ -15,4 +15,4 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, * USA. */ -char buildtime[] = __DATE__ " " __TIME__; +char buildtime[] = "??? ?? ???? ??:??:??"; ---- tigervnc-1.3.1.orig/unix/vncconfig/buildtime.c -+++ tigervnc-1.3.1/unix/vncconfig/buildtime.c +Index: tigervnc-1.4.1/unix/vncconfig/buildtime.c +=================================================================== +--- tigervnc-1.4.1.orig/unix/vncconfig/buildtime.c ++++ tigervnc-1.4.1/unix/vncconfig/buildtime.c @@ -15,4 +15,4 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, * USA. */ -char buildtime[] = __DATE__ " " __TIME__; +char buildtime[] = "??? ?? ???? ??:??:??"; ---- tigervnc-1.3.1.orig/unix/x0vncserver/buildtime.c -+++ tigervnc-1.3.1/unix/x0vncserver/buildtime.c +Index: tigervnc-1.4.1/unix/x0vncserver/buildtime.c +=================================================================== +--- tigervnc-1.4.1.orig/unix/x0vncserver/buildtime.c ++++ tigervnc-1.4.1/unix/x0vncserver/buildtime.c @@ -15,4 +15,4 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, * USA. */ -char buildtime[] = __DATE__ " " __TIME__; +char buildtime[] = "??? ?? ???? ??:??:??"; ---- tigervnc-1.3.1.orig/vncviewer/buildTime.cxx -+++ tigervnc-1.3.1/vncviewer/buildTime.cxx -@@ -15,4 +15,4 @@ - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, - * USA. - */ --const char* buildTime = "Built on " __DATE__ " at " __TIME__; -+const char* buildTime = "Built on ??? ?? ???? at ??:??:??"; ---- tigervnc-1.3.1.orig/win/winvnc/buildTime.cxx -+++ tigervnc-1.3.1/win/winvnc/buildTime.cxx +Index: tigervnc-1.4.1/win/winvnc/buildTime.cxx +=================================================================== +--- tigervnc-1.4.1.orig/win/winvnc/buildTime.cxx ++++ tigervnc-1.4.1/win/winvnc/buildTime.cxx @@ -15,4 +15,4 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, * USA. */ -const char* buildTime = "Built on " __DATE__ " at " __TIME__; +const char* buildTime = "Built on ??? ?? ???? at ??:??:??"; +Index: tigervnc-1.4.1/CMakeLists.txt +=================================================================== +--- tigervnc-1.4.1.orig/CMakeLists.txt ++++ tigervnc-1.4.1/CMakeLists.txt +@@ -39,8 +39,7 @@ if(MSVC) + message(FATAL_ERROR "TigerVNC cannot be built with Visual Studio. Please use MinGW") + endif() + +-set(BUILD_TIMESTAMP "") +-execute_process(COMMAND "date" "+%Y-%m-%d %H:%M" OUTPUT_VARIABLE BUILD_TIMESTAMP) ++set(BUILD_TIMESTAMP "??-??-?? ??:??") + + if(NOT BUILD_TIMESTAMP) + set(BUILD_TIMESTAMP "") diff --git a/tigervnc-1.2.80-fix-int-to-pointer.patch b/tigervnc-1.2.80-fix-int-to-pointer.patch deleted file mode 100644 index 1b48bce..0000000 --- a/tigervnc-1.2.80-fix-int-to-pointer.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: unix/xserver/hw/vnc/vncExtInit.cc -=================================================================== ---- xserver/hw/vnc/vncExtInit.cc (revision 5122) -+++ xserver/hw/vnc/vncExtInit.cc (working copy) -@@ -1068,7 +1068,7 @@ - { - REQUEST(xVncExtApproveConnectReq); - REQUEST_SIZE_MATCH(xVncExtApproveConnectReq); -- if (queryConnectId == (void*)stuff->opaqueId) { -+ if ((CARD32)(long)queryConnectId == stuff->opaqueId) { - for (int scr = 0; scr < screenInfo.numScreens; scr++) { - if (desktop[scr]) { - desktop[scr]->approveConnection(queryConnectId, stuff->approve, diff --git a/tigervnc-1.3.1.tar.bz2 b/tigervnc-1.3.1.tar.bz2 deleted file mode 100644 index 28b3dcc..0000000 --- a/tigervnc-1.3.1.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a5fca05898394847f2d2876d471622443acb7c648a896978d195e41f010ded51 -size 1077474 diff --git a/tigervnc-1.4.1.tar.gz b/tigervnc-1.4.1.tar.gz new file mode 100644 index 0000000..afd84e2 --- /dev/null +++ b/tigervnc-1.4.1.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5cffd87707fff8e89b9236bc18925729485dd607872833f3a433fea744809ddd +size 1369531 diff --git a/tigervnc-clean-pressed-key-on-exit.patch b/tigervnc-clean-pressed-key-on-exit.patch index 4f47e3a..1c38242 100644 --- a/tigervnc-clean-pressed-key-on-exit.patch +++ b/tigervnc-clean-pressed-key-on-exit.patch @@ -1,8 +1,8 @@ -diff --git a/vncviewer/DesktopWindow.cxx b/vncviewer/DesktopWindow.cxx -index 40d08ae..7a571ec 100644 ---- a/vncviewer/DesktopWindow.cxx -+++ b/vncviewer/DesktopWindow.cxx -@@ -186,6 +186,8 @@ DesktopWindow::~DesktopWindow() +Index: tigervnc-1.4.1/vncviewer/DesktopWindow.cxx +=================================================================== +--- tigervnc-1.4.1.orig/vncviewer/DesktopWindow.cxx ++++ tigervnc-1.4.1/vncviewer/DesktopWindow.cxx +@@ -188,6 +188,8 @@ DesktopWindow::~DesktopWindow() OptionsDialog::removeCallback(handleOptions); @@ -11,11 +11,11 @@ index 40d08ae..7a571ec 100644 // FLTK automatically deletes all child widgets, so we shouldn't touch // them ourselves here } -diff --git a/vncviewer/Viewport.cxx b/vncviewer/Viewport.cxx -index e308a63..41733f9 100644 ---- a/vncviewer/Viewport.cxx -+++ b/vncviewer/Viewport.cxx -@@ -112,6 +112,11 @@ Viewport::Viewport(int w, int h, const rfb::PixelFormat& serverPF, CConn* cc_) +Index: tigervnc-1.4.1/vncviewer/Viewport.cxx +=================================================================== +--- tigervnc-1.4.1.orig/vncviewer/Viewport.cxx ++++ tigervnc-1.4.1/vncviewer/Viewport.cxx +@@ -144,6 +144,11 @@ Viewport::Viewport(int w, int h, const r Viewport::~Viewport() { @@ -26,12 +26,12 @@ index e308a63..41733f9 100644 + // Unregister all timeouts in case they get a change tro trigger // again later when this object is already gone. - Fl::remove_timeout(handleUpdateTimeout, this); -diff --git a/vncviewer/vncviewer.cxx b/vncviewer/vncviewer.cxx -index 37d63a6..5bb811d 100644 ---- a/vncviewer/vncviewer.cxx -+++ b/vncviewer/vncviewer.cxx -@@ -83,6 +83,8 @@ char vncServerName[VNCSERVERNAMELEN] = { '\0' }; + Fl::remove_timeout(handlePointerTimeout, this); +Index: tigervnc-1.4.1/vncviewer/vncviewer.cxx +=================================================================== +--- tigervnc-1.4.1.orig/vncviewer/vncviewer.cxx ++++ tigervnc-1.4.1/vncviewer/vncviewer.cxx +@@ -88,6 +88,8 @@ char vncServerName[VNCSERVERNAMELEN] = { static bool exitMainloop = false; static const char *exitError = NULL; @@ -40,10 +40,10 @@ index 37d63a6..5bb811d 100644 void exit_vncviewer(const char *error) { // Prioritise the first error we get as that is probably the most -@@ -110,6 +112,16 @@ static void CleanupSignalHandler(int sig) +@@ -114,6 +116,16 @@ static void CleanupSignalHandler(int sig // CleanupSignalHandler allows C++ object cleanup to happen because it calls // exit() rather than the default which is to abort. - vlog.info("CleanupSignalHandler called"); + vlog.info(_("CleanupSignalHandler called")); + delete cc; + exit(1); +} @@ -57,10 +57,19 @@ index 37d63a6..5bb811d 100644 exit(1); } -@@ -384,6 +396,10 @@ int main(int argc, char** argv) +@@ -392,11 +404,19 @@ int main(int argc, char** argv) init_fltk(); ++ fl_open_display(); ++ ++ XSetIOErrorHandler(CleanupXIOErrorHandler); ++ + #if !defined(WIN32) && !defined(__APPLE__) + fl_open_display(); + XkbSetDetectableAutoRepeat(fl_display, True, NULL); + #endif + + fl_open_display(); + + XSetIOErrorHandler(CleanupXIOErrorHandler); @@ -68,7 +77,7 @@ index 37d63a6..5bb811d 100644 Configuration::enableViewerParams(); /* Load the default parameter settings */ -@@ -484,7 +500,7 @@ int main(int argc, char** argv) +@@ -497,7 +517,7 @@ int main(int argc, char** argv) #endif } diff --git a/tigervnc-newfbsize.patch b/tigervnc-newfbsize.patch index cbd379a..a059b14 100644 --- a/tigervnc-newfbsize.patch +++ b/tigervnc-newfbsize.patch @@ -1,12 +1,13 @@ -diff -up a/vncviewer/CConn.cxx.newfbsize b/vncviewer/CConn.cxx ---- a/vncviewer/CConn.cxx.newfbsize 2008-10-23 13:00:59.000000000 +0200 -+++ b/vncviewer/CConn.cxx 2008-10-23 13:01:11.000000000 +0200 -@@ -327,6 +327,8 @@ void CConn::beginRect(const Rect& r, uns - if (encoding != encodingCopyRect) { +Index: tigervnc-1.4.1/vncviewer/CConn.cxx +=================================================================== +--- tigervnc-1.4.1.orig/vncviewer/CConn.cxx ++++ tigervnc-1.4.1/vncviewer/CConn.cxx +@@ -424,6 +424,8 @@ void CConn::dataRect(const Rect& r, int + + if (encoding != encodingCopyRect) lastServerEncoding = encoding; - } + if (encoding == pseudoEncodingDesktopSize) + setDesktopSize( r.width(), r.height() ); - } - void CConn::endRect(const Rect& r, int encoding) + if (!Decoder::supported(encoding)) { + vlog.error(_("Unknown rect encoding %d"), encoding); diff --git a/tigervnc-sf3492352.diff b/tigervnc-sf3492352.diff deleted file mode 100644 index d2a2080..0000000 --- a/tigervnc-sf3492352.diff +++ /dev/null @@ -1,15 +0,0 @@ -diff -aur o/doc/rfbtight.tex n/doc/rfbtight.tex ---- o/doc/rfbtight.tex 2011-08-09 23:16:48.000000000 +0200 -+++ n/doc/rfbtight.tex 2012-02-23 19:45:07.473906253 +0100 -@@ -4,8 +4,9 @@ - \setlength{\parindent}{0pt} - \setlength{\parskip}{1ex plus 0.5ex minus 0.2ex} - --\newcommand{\typestr}[1]{\textit{#1}} --\newcommand{\literal}[1]{\textit{\textbf{#1}}} -+\newcommand\standout{\hspace{0pt plus4em}} -+\newcommand{\typestr}[1]{\standout\hspace*{0pt}\textbf{#1}\standout} -+\newcommand{\literal}[1]{\standout\hspace*{0pt}\textit{\textbf{#1}}\standout} - - \begin{document} - diff --git a/tigervnc.changes b/tigervnc.changes index 6f4a647..2bfd7f3 100644 --- a/tigervnc.changes +++ b/tigervnc.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Fri Jan 9 12:50:45 UTC 2015 - msrb@suse.com + +- Update to tigervnc 1.4.1 on xorg-server 1.16.1. + ------------------------------------------------------------------- Sun Nov 16 09:33:04 UTC 2014 - oscar@naiandei.net diff --git a/tigervnc.spec b/tigervnc.spec index 07cafad..c8f440a 100644 --- a/tigervnc.spec +++ b/tigervnc.spec @@ -1,7 +1,7 @@ # # spec file for package tigervnc # -# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: tigervnc -Version: 1.3.1 +Version: 1.4.1 Release: 0 Provides: tightvnc = 1.3.9 Obsoletes: tightvnc < 1.3.9 @@ -90,8 +90,8 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-build Summary: A high-performance, platform-neutral implementation of VNC License: GPL-2.0 and MIT Group: System/X11/Servers/XF86_4 -Source1: tigervnc-1.3.1.tar.bz2 -Source2: xorg-server-1.14.0.tar.bz2 +Source1: tigervnc-1.4.1.tar.gz +Source2: xorg-server-1.16.1.tar.bz2 Source3: vnc.xinetd Source4: 10-libvnc.conf Source5: vnc-server.firewall @@ -102,25 +102,19 @@ Source9: vncpasswd.arg Source10: index.vnc # Tiger vnc patches -Patch1: u_tigervnc-1.3.0-fix-use-after-free.patch -Patch2: tigervnc-newfbsize.patch -Patch3: tigervnc-clean-pressed-key-on-exit.patch -Patch4: tigervnc-sf3492352.diff -Patch5: tigervnc-sf3495623.patch -Patch6: u_tigervnc-dont-send-ascii-control-characters.patch -Patch7: u_tigervnc-ignore-epipe-on-write.patch -Patch8: n_tigervnc-date-time.patch -Patch9: U_include-vencrypt-only-if-any-subtype-present.patch -Patch10: u_tigervnc-check-shm-harder.patch -Patch11: u_tigervnc-use_preferred_mode.patch -Patch12: u_tigervnc-cve-2014-8240.patch +Patch1: tigervnc-newfbsize.patch +Patch2: tigervnc-clean-pressed-key-on-exit.patch +Patch3: tigervnc-sf3495623.patch +Patch4: u_tigervnc-dont-send-ascii-control-characters.patch +Patch5: u_tigervnc-ignore-epipe-on-write.patch +Patch6: n_tigervnc-date-time.patch +Patch7: U_include-vencrypt-only-if-any-subtype-present.patch +Patch8: u_tigervnc-use_preferred_mode.patch +Patch9: u_tigervnc-cve-2014-8240.patch # Xserver patches -Patch20: tigervnc-1.2.80-fix-int-to-pointer.patch -Patch21: u_aarch64-support.patch -Patch22: N_xorg-server-xdmcp.patch -Patch23: n_tigervnc-dont-build-gtf.patch -Patch24: u_arch-Fix-image-and-bitmap-byte-order-for-ppc64le.patch +Patch20: N_xorg-server-xdmcp.patch +Patch21: n_tigervnc-dont-build-gtf.patch %description TigerVNC is a high-performance, platform-neutral implementation of VNC (Virtual Network Computing), @@ -150,23 +144,17 @@ fi %patch1 -p1 %patch2 -p1 %patch3 -p1 -%patch4 -p1 -%patch5 -p1 -%patch6 -p0 +%patch4 -p0 +%patch5 -p0 +%patch6 -p1 %patch7 -p0 -%patch8 -p1 -%patch9 -p0 -%patch10 -p0 -%patch11 -p0 -%patch12 -p1 +%patch8 -p0 +%patch9 -p1 pushd unix/xserver -patch -p1 < ../xserver114.patch +patch -p1 < ../xserver116.patch %patch20 -p1 %patch21 -p1 -%patch22 -p1 -%patch23 -p1 -%patch24 -p1 popd %build @@ -254,7 +242,7 @@ fi %defattr(-,root,root,-) %ghost %{_bindir}/vncviewer %{_bindir}/vncviewer-tigervnc -%exclude /usr/share/doc/tigervnc-1.3.1 +%exclude /usr/share/doc/tigervnc-1.4.1 %doc LICENCE.TXT %doc README.txt %ghost %_mandir/man1/vncviewer.1.gz diff --git a/u_aarch64-support.patch b/u_aarch64-support.patch deleted file mode 100644 index b628883..0000000 --- a/u_aarch64-support.patch +++ /dev/null @@ -1,42 +0,0 @@ -Subject: Basic support for aarch64 -Author: Andreas Schwab - -Index: xorg-server-1.13.2/hw/xfree86/os-support/linux/lnx_video.c -=================================================================== ---- xorg-server-1.13.2.orig/hw/xfree86/os-support/linux/lnx_video.c -+++ xorg-server-1.13.2/hw/xfree86/os-support/linux/lnx_video.c -@@ -58,7 +58,8 @@ static Bool ExtendedEnabled = FALSE; - !defined(__sparc__) && \ - !defined(__mips__) && \ - !defined(__nds32__) && \ -- !defined(__arm__) -+ !defined(__arm__) && \ -+ !defined(__aarch64__) - - /* - * Due to conflicts with "compiler.h", don't rely on to declare -Index: xorg-server-1.13.2/include/servermd.h -=================================================================== ---- xorg-server-1.13.2.orig/include/servermd.h -+++ xorg-server-1.13.2/include/servermd.h -@@ -286,6 +286,20 @@ SOFTWARE. - #define GLYPHPADBYTES 4 - #endif /* linux/s390 */ - -+#ifdef __aarch64__ -+ -+#ifdef __AARCH64EL__ -+#define IMAGE_BYTE_ORDER LSBFirst -+#define BITMAP_BIT_ORDER LSBFirst -+#endif -+#ifdef __AARCH64EB__ -+#define IMAGE_BYTE_ORDER MSBFirst -+#define BITMAP_BIT_ORDER MSBFirst -+#endif -+#define GLYPHPADBYTES 4 -+ -+#endif /* __aarch64__ */ -+ - /* size of buffer to use with GetImage, measured in bytes. There's obviously - * a trade-off between the amount of heap used and the number of times the - * ddx routine has to be called. diff --git a/u_arch-Fix-image-and-bitmap-byte-order-for-ppc64le.patch b/u_arch-Fix-image-and-bitmap-byte-order-for-ppc64le.patch deleted file mode 100644 index 1c1551f..0000000 --- a/u_arch-Fix-image-and-bitmap-byte-order-for-ppc64le.patch +++ /dev/null @@ -1,38 +0,0 @@ -From: Dinar Valeev -Date: Mon Feb 24 10:48:22 2014 +0100 -Subject: [PATCH]arch: Fix image and bitmap byte order for ppc64le -Patch-Mainline: to be upstreamed -Git-commit: 3874826e84151917a443f8efb46ea7414c990243 -Git-repo: git://anongit.freedesktop.org/git/xorg/xserver -References: bnc#865069 -Signed-off-by: Egbert Eich - -So far PPC was big endian for sure. For ppc64le this is no longer -true. - -Signed-off-by: Egbert Eich ---- - include/servermd.h | 9 +++++++-- - 1 file changed, 7 insertions(+), 2 deletions(-) - -diff --git a/include/servermd.h b/include/servermd.h -index 11f6c10..256d84b 100644 ---- a/include/servermd.h -+++ b/include/servermd.h -@@ -114,8 +114,13 @@ SOFTWARE. - - #if defined(__powerpc__) || defined(__ppc__) || defined(__ppc64__) - --#define IMAGE_BYTE_ORDER MSBFirst --#define BITMAP_BIT_ORDER MSBFirst -+#if defined(__LITTLE_ENDIAN__) -+#define IMAGE_BYTE_ORDER LSBFirst -+#define BITMAP_BIT_ORDER LSBFirst -+#else -+#define IMAGE_BYTE_ORDER MSBFirst -+#define BITMAP_BIT_ORDER MSBFirst -+#endif - #define GLYPHPADBYTES 4 - - #endif /* PowerPC */ - diff --git a/u_tigervnc-1.3.0-fix-use-after-free.patch b/u_tigervnc-1.3.0-fix-use-after-free.patch deleted file mode 100644 index d147853..0000000 --- a/u_tigervnc-1.3.0-fix-use-after-free.patch +++ /dev/null @@ -1,115 +0,0 @@ -Author: Michal Srb -Subject: Fix use after free in ZRLEEncoder. -Patch-Mainline: To be upstreamed -References: bnc#840433 - -There is use after free crash when client using zrle disconnects: -ZRLEEncoder contains zos variable (rdr::ZlibOutStream) and mos variable (pointer to rdr::MemOutStream). -mos is always allocated in constructor (it could be a copy of static sharedMos pointer if sharedMos != 0, but it is always 0). -When ZRLEEncoder::writeRect is called, any of zrleEncode* functions sets mos as an underlying stream of zos. -When ZRLEEncoder is destructed, mos is deleted (sharedMos is always 0), then zos is implicitly destructed, but zos accesses it's underlying stream in it's destructor! - -We need to destruct mos first and zos second when ZRLEEncoder is destructed. -As sharedMos is never used, we can remove that, simplify ZRLEEncoder and turn zos into a member variable same as mos. They will be both implicitly destructed in reverse order of declaration. - -diff -ur tigervnc-1.3.0-orig/common/rfb/ZRLEEncoder.cxx tigervnc-1.3.0/common/rfb/ZRLEEncoder.cxx ---- tigervnc-1.3.0-orig/common/rfb/ZRLEEncoder.cxx 2013-09-17 00:18:28.557911306 +0300 -+++ tigervnc-1.3.0/common/rfb/ZRLEEncoder.cxx 2013-09-17 00:19:57.487915741 +0300 -@@ -26,7 +26,6 @@ - - using namespace rfb; - --rdr::MemOutStream* ZRLEEncoder::sharedMos = 0; - int ZRLEEncoder::maxLen = 4097 * 1024; // enough for width 16384 32-bit pixels - - IntParameter zlibLevel("ZlibLevel","Zlib compression level",-1); -@@ -55,33 +54,27 @@ - } - - ZRLEEncoder::ZRLEEncoder(SMsgWriter* writer_) -- : writer(writer_), zos(0,0,zlibLevel) -+ : writer(writer_), zos(0,0,zlibLevel), mos(129*1024) - { -- if (sharedMos) -- mos = sharedMos; -- else -- mos = new rdr::MemOutStream(129*1024); - } - - ZRLEEncoder::~ZRLEEncoder() - { -- if (!sharedMos) -- delete mos; - } - - bool ZRLEEncoder::writeRect(const Rect& r, TransImageGetter* ig, Rect* actual) - { - rdr::U8* imageBuf = writer->getImageBuf(64 * 64 * 4 + 4); -- mos->clear(); -+ mos.clear(); - bool wroteAll = true; - *actual = r; - - switch (writer->bpp()) { - case 8: -- wroteAll = zrleEncode8(r, mos, &zos, imageBuf, maxLen, actual, ig); -+ wroteAll = zrleEncode8(r, &mos, &zos, imageBuf, maxLen, actual, ig); - break; - case 16: -- wroteAll = zrleEncode16(r, mos, &zos, imageBuf, maxLen, actual, ig); -+ wroteAll = zrleEncode16(r, &mos, &zos, imageBuf, maxLen, actual, ig); - break; - case 32: - { -@@ -94,16 +87,16 @@ - if ((fitsInLS3Bytes && pf.isLittleEndian()) || - (fitsInMS3Bytes && pf.isBigEndian())) - { -- wroteAll = zrleEncode24A(r, mos, &zos, imageBuf, maxLen, actual, ig); -+ wroteAll = zrleEncode24A(r, &mos, &zos, imageBuf, maxLen, actual, ig); - } - else if ((fitsInLS3Bytes && pf.isBigEndian()) || - (fitsInMS3Bytes && pf.isLittleEndian())) - { -- wroteAll = zrleEncode24B(r, mos, &zos, imageBuf, maxLen, actual, ig); -+ wroteAll = zrleEncode24B(r, &mos, &zos, imageBuf, maxLen, actual, ig); - } - else - { -- wroteAll = zrleEncode32(r, mos, &zos, imageBuf, maxLen, actual, ig); -+ wroteAll = zrleEncode32(r, &mos, &zos, imageBuf, maxLen, actual, ig); - } - break; - } -@@ -111,8 +104,8 @@ - - writer->startRect(*actual, encodingZRLE); - rdr::OutStream* os = writer->getOutStream(); -- os->writeU32(mos->length()); -- os->writeBytes(mos->data(), mos->length()); -+ os->writeU32(mos.length()); -+ os->writeBytes(mos.data(), mos.length()); - writer->endRect(); - return wroteAll; - } -diff -ur tigervnc-1.3.0-orig/common/rfb/ZRLEEncoder.h tigervnc-1.3.0/common/rfb/ZRLEEncoder.h ---- tigervnc-1.3.0-orig/common/rfb/ZRLEEncoder.h 2013-09-17 00:18:28.558911306 +0300 -+++ tigervnc-1.3.0/common/rfb/ZRLEEncoder.h 2013-09-17 00:20:34.372917581 +0300 -@@ -38,16 +38,11 @@ - // width, in this example about 128 bytes). - static void setMaxLen(int m) { maxLen = m; } - -- // setSharedMos() sets a MemOutStream to be shared amongst all -- // ZRLEEncoders. Should be called before any ZRLEEncoders are created. -- static void setSharedMos(rdr::MemOutStream* mos_) { sharedMos = mos_; } -- - private: - ZRLEEncoder(SMsgWriter* writer); - SMsgWriter* writer; -+ rdr::MemOutStream mos; - rdr::ZlibOutStream zos; -- rdr::MemOutStream* mos; -- static rdr::MemOutStream* sharedMos; - static int maxLen; - }; - } diff --git a/u_tigervnc-check-shm-harder.patch b/u_tigervnc-check-shm-harder.patch deleted file mode 100644 index 48d923c..0000000 --- a/u_tigervnc-check-shm-harder.patch +++ /dev/null @@ -1,26 +0,0 @@ -Index: vncviewer/X11PixelBuffer.cxx -=================================================================== ---- vncviewer/X11PixelBuffer.cxx (revision 5186) -+++ vncviewer/X11PixelBuffer.cxx (working copy) -@@ -158,6 +158,8 @@ - Bool pixmaps; - XErrorHandler old_handler; - Status status; -+ Window test_window; -+ GC test_gc; - - if (!XShmQueryVersion(fl_display, &major, &minor, &pixmaps)) - return 0; -@@ -187,6 +189,12 @@ - old_handler = XSetErrorHandler(XShmAttachErrorHandler); - - XShmAttach(fl_display, shminfo); -+ test_window = XCreateSimpleWindow(fl_display, XDefaultRootWindow(fl_display), 0, 0, width(), height(), 0, 0, 0); -+ test_gc = XCreateGC(fl_display, test_window, 0, 0); -+ XShmPutImage(fl_display, test_window, test_gc, xim, 0, 0, 0, 0, width(), height(), False); -+ XFreeGC(fl_display, test_gc); -+ XDestroyWindow(fl_display, test_window); -+ - XSync(fl_display, False); - - XSetErrorHandler(old_handler); diff --git a/u_tigervnc-cve-2014-8240.patch b/u_tigervnc-cve-2014-8240.patch index ea359d1..50dd2e3 100644 --- a/u_tigervnc-cve-2014-8240.patch +++ b/u_tigervnc-cve-2014-8240.patch @@ -2,9 +2,10 @@ Patch-Mainline: To be upstreamed References: bnc#900896 CVE-2014-8240 Signed-off-by: Michal Srb -diff -up tigervnc-1.3.1/unix/x0vncserver/Image.cxx.CVE-2014-8240 tigervnc-1.3.1/unix/x0vncserver/Image.cxx ---- tigervnc-1.3.1/unix/x0vncserver/Image.cxx.CVE-2014-8240 2008-03-19 16:14:48.000000000 +0000 -+++ tigervnc-1.3.1/unix/x0vncserver/Image.cxx 2014-10-16 12:23:08.013339234 +0100 +Index: tigervnc-1.4.1/unix/x0vncserver/Image.cxx +=================================================================== +--- tigervnc-1.4.1.orig/unix/x0vncserver/Image.cxx ++++ tigervnc-1.4.1/unix/x0vncserver/Image.cxx @@ -80,6 +80,14 @@ void Image::Init(int width, int height) xim = XCreateImage(dpy, vis, DefaultDepth(dpy, DefaultScreen(dpy)), ZPixmap, 0, 0, width, height, BitmapPad(dpy), 0); @@ -38,12 +39,13 @@ diff -up tigervnc-1.3.1/unix/x0vncserver/Image.cxx.CVE-2014-8240 tigervnc-1.3.1/ } shminfo->shmid = shmget(IPC_PRIVATE, -diff -up tigervnc-1.3.1/vncviewer/X11PixelBuffer.cxx.CVE-2014-8240 tigervnc-1.3.1/vncviewer/X11PixelBuffer.cxx ---- tigervnc-1.3.1/vncviewer/X11PixelBuffer.cxx.CVE-2014-8240 2011-08-23 13:04:46.000000000 +0100 -+++ tigervnc-1.3.1/vncviewer/X11PixelBuffer.cxx 2014-10-16 12:22:53.053261132 +0100 -@@ -105,6 +105,15 @@ PlatformPixelBuffer::PlatformPixelBuffer - ZPixmap, 0, 0, width, height, BitmapPad(fl_display), 0); - assert(xim); +Index: tigervnc-1.4.1/vncviewer/X11PixelBuffer.cxx +=================================================================== +--- tigervnc-1.4.1.orig/vncviewer/X11PixelBuffer.cxx ++++ tigervnc-1.4.1/vncviewer/X11PixelBuffer.cxx +@@ -106,6 +106,15 @@ X11PixelBuffer::X11PixelBuffer(int width + if (!xim) + throw rfb::Exception(_("Could not create framebuffer image")); + if (xim->bytes_per_line <= 0 || + xim->height <= 0 || @@ -55,9 +57,9 @@ diff -up tigervnc-1.3.1/vncviewer/X11PixelBuffer.cxx.CVE-2014-8240 tigervnc-1.3. + } + xim->data = (char*)malloc(xim->bytes_per_line * xim->height); - assert(xim->data); - } -@@ -169,6 +178,16 @@ int PlatformPixelBuffer::setupShm() + if (!xim->data) + throw rfb::Exception(_("Not enough memory for framebuffer")); +@@ -172,6 +181,16 @@ int X11PixelBuffer::setupShm() if (!xim) goto free_shminfo; diff --git a/u_tigervnc-dont-send-ascii-control-characters.patch b/u_tigervnc-dont-send-ascii-control-characters.patch index c6bc781..f570e72 100644 --- a/u_tigervnc-dont-send-ascii-control-characters.patch +++ b/u_tigervnc-dont-send-ascii-control-characters.patch @@ -5,10 +5,10 @@ References: bnc#864666 Index: vncviewer/Viewport.cxx =================================================================== ---- vncviewer/Viewport.cxx (revision 5162) -+++ vncviewer/Viewport.cxx (working copy) -@@ -753,7 +753,13 @@ - return XK_VoidSymbol; +--- vncviewer/Viewport.cxx.orig ++++ vncviewer/Viewport.cxx +@@ -1044,7 +1044,13 @@ rdr::U32 Viewport::translateKeyEvent(voi + return NoSymbol; } - ucs = fl_utf8decode(keyText, NULL, NULL); diff --git a/xorg-server-1.14.0.tar.bz2 b/xorg-server-1.14.0.tar.bz2 deleted file mode 100644 index 2afbf2a..0000000 --- a/xorg-server-1.14.0.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f7adfa5c1dd5cf228bb54794016d9e11ef389c1a70f91c33d72691c52e8a0f2b -size 5530988 diff --git a/xorg-server-1.16.1.tar.bz2 b/xorg-server-1.16.1.tar.bz2 new file mode 100644 index 0000000..bc1c3ab --- /dev/null +++ b/xorg-server-1.16.1.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ad7fa80413feeba7855ba2ec5d72bfbc3e191b7ec56c81291e7c9c0a3a9f881e +size 5829838