Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:12.2
xorg-x11-server
N-VNC-Fix-crash-when-no-depth-translation-is-re...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File N-VNC-Fix-crash-when-no-depth-translation-is-required.patch of Package xorg-x11-server
From: Michael Schroeder <mls@suse.de> Date: Tue, 6 Sep 2011 07:58:33 +0200 Subject: [PATCH 3/6] VNC: Fix crash when no depth translation is required. Patch-Mainline: Currently no upstream project. Git-commit: 74d5e3115cd955b7ee1acc64c6b8b42198ed894b Signed-off: Egbert Eich <eich@suse.de> References: bnc #389386 Signed-off-by: Egbert Eich <eich@freedesktop.org> --- hw/vnc/translate.c | 11 ++++++----- 1 files changed, 6 insertions(+), 5 deletions(-) diff --git a/hw/vnc/translate.c b/hw/vnc/translate.c index 5cc57a3..78030ed 100644 --- a/hw/vnc/translate.c +++ b/hw/vnc/translate.c @@ -168,17 +168,18 @@ rfbTranslateNone(ScreenPtr pScreen, char *table, rfbPixelFormat *in, rfbPixelFor { VNCSCREENPTR(pScreen); DrawablePtr pDraw = (DrawablePtr)pScreen->root; - int truewidth = PixmapBytePad(width, in->bitsPerPixel) / 4; + int truewidth = PixmapBytePad(width, in->bitsPerPixel); - if ((x + truewidth > pVNC->width) || truewidth != width) { - unsigned char *buffer = malloc(truewidth * height * in->bitsPerPixel / 8); + if ((x + width > pVNC->width) || truewidth != width * in->bitsPerPixel / 8) { + unsigned char *buffer = malloc(truewidth * height); unsigned char *buf = buffer; - (*pScreen->GetImage)(pDraw, x, y, truewidth, height, ZPixmap, ~0, (char*)buf); + (*pScreen->GetImage)(pDraw, x, y, width, height, ZPixmap, ~0, (char*)buf); + while (height--) { memcpy(optr, buf, width * in->bitsPerPixel / 8); optr += width * in->bitsPerPixel / 8; - buf += truewidth * in->bitsPerPixel / 8; + buf += truewidth; } free(buffer); return; -- 1.7.3.4
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor