forked from pool/tigervnc
- Update to tigervnc 1.8.0
* Overhaul of the Java client to match the look and behaviour of the native client * Initial work for multi-threaded decoding in the Java client * vncconfig no longer needed for clipboard with Xvnc/libvnc.so * vncserver has system wide config support * Full support for alpha cursors in Xvnc/libvnc.so and both viewers - Removed patches: * U_Add-xorg-xserver-1.19-support.patch * U_tigervnc-fix-inetd-not-working-with-xserver-1-19.patch * U_tigervnc-better-check-for-screen-visibility.patch - U_tigervnc-better-check-for-screen-visibility.patch * Crop operations to visible screen. (bnc#1032272) OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/tigervnc?expand=0&rev=108
This commit is contained in:
committed by
Git OBS Bridge
parent
491381fafa
commit
3e36489820
@@ -2,10 +2,10 @@ Patch-Mainline: To be upstreamed
|
||||
References: bnc#900896 CVE-2014-8240
|
||||
Signed-off-by: Michal Srb <msrb@suse.com>
|
||||
|
||||
Index: tigervnc-1.4.1/unix/x0vncserver/Image.cxx
|
||||
Index: tigervnc-1.8.0/unix/x0vncserver/Image.cxx
|
||||
===================================================================
|
||||
--- tigervnc-1.4.1.orig/unix/x0vncserver/Image.cxx
|
||||
+++ tigervnc-1.4.1/unix/x0vncserver/Image.cxx
|
||||
--- tigervnc-1.8.0.orig/unix/x0vncserver/Image.cxx
|
||||
+++ tigervnc-1.8.0/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);
|
||||
@@ -39,40 +39,3 @@ Index: tigervnc-1.4.1/unix/x0vncserver/Image.cxx
|
||||
}
|
||||
|
||||
shminfo->shmid = shmget(IPC_PRIVATE,
|
||||
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 ||
|
||||
+ xim->height >= INT_MAX / xim->bytes_per_line) {
|
||||
+ if (xim)
|
||||
+ XDestroyImage(xim);
|
||||
+ xim = NULL;
|
||||
+ throw rfb::Exception("Invalid display size");
|
||||
+ }
|
||||
+
|
||||
xim->data = (char*)malloc(xim->bytes_per_line * xim->height);
|
||||
if (!xim->data)
|
||||
throw rfb::Exception(_("Not enough memory for framebuffer"));
|
||||
@@ -172,6 +181,16 @@ int X11PixelBuffer::setupShm()
|
||||
if (!xim)
|
||||
goto free_shminfo;
|
||||
|
||||
+ if (xim->bytes_per_line <= 0 ||
|
||||
+ xim->height <= 0 ||
|
||||
+ xim->height >= INT_MAX / xim->bytes_per_line) {
|
||||
+ XDestroyImage(xim);
|
||||
+ xim = NULL;
|
||||
+ delete shminfo;
|
||||
+ shminfo = NULL;
|
||||
+ throw rfb::Exception("Invalid display size");
|
||||
+ }
|
||||
+
|
||||
shminfo->shmid = shmget(IPC_PRIVATE,
|
||||
xim->bytes_per_line * xim->height,
|
||||
IPC_CREAT|0777);
|
||||
|
Reference in New Issue
Block a user