Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12-SP2:Update
gdk-pixbuf.7709
u_contrib-gdk-pixbuf-xlib-Fix-rgb888amsb.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File u_contrib-gdk-pixbuf-xlib-Fix-rgb888amsb.patch of Package gdk-pixbuf.7709
From: Max Staudt <mstaudt@suse.de> Date: Fri Dec 9 14:26:34 2016 +0100 Subject: [PATCH]contrib/gdk-pixbuf-xlib: Fix rgb888amsb() Patch-mainline: to be upstreamed Git-repo: git://git.gnome.org/gdk-pixbuf References: boo#929462 bsc#1010497 Signed-off-by: Max Staudt <mstaudt@suse.de> On Little Endian, it wrote memory out of bounds (i.e. when running inside a little endian client, connecting to a big endian X server). On Big Endian, it only processed the first 1/4 of the icon. The effects can be seen when running IceWM. Running native on Big Endian ppc64 with a Big Endian X11 server, the icon background was 3/4 random: https://bugzilla.suse.com/show_bug.cgi?id=929462 This match makes rgb888amsb() behave analogously to rgb888msb(). Signed-off-by: Max Staudt <mstaudt@suse.de> --- contrib/gdk-pixbuf-xlib/gdk-pixbuf-xlib-drawable.c | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/contrib/gdk-pixbuf-xlib/gdk-pixbuf-xlib-drawable.c b/contrib/gdk-pixbuf-xlib/gdk-pixbuf-xlib-drawable.c index 972c2be..422fdc8 100644 --- a/contrib/gdk-pixbuf-xlib/gdk-pixbuf-xlib-drawable.c +++ b/contrib/gdk-pixbuf-xlib/gdk-pixbuf-xlib-drawable.c @@ -915,13 +915,8 @@ rgb888amsb (XImage *image, guchar *pixels, int rowstride, xlib_colormap *colorma int bpl; guint8 *srow = (guint8 *)image->data, *orow = pixels; -#ifdef LITTLE - guint32 *o; - guint32 *s; -#else guint8 *s; /* for byte order swapping */ guint8 *o; -#endif d (printf ("32 bit, msb, with alpha\n")); @@ -931,24 +926,14 @@ rgb888amsb (XImage *image, guchar *pixels, int rowstride, xlib_colormap *colorma /* msb data */ for (yy = 0; yy < height; yy++) { -#ifdef LITTLE - s = (guint32 *) srow; - o = (guint32 *) orow; -#else s = srow; o = orow; -#endif for (xx = 0; xx < width; xx++) { -#ifdef LITTLE *o++ = s[1]; *o++ = s[2]; *o++ = s[3]; *o++ = 0xff; s += 4; -#else - *o++ = (*s << 8) | 0xff; /* untested */ - s++; -#endif } srow += bpl; orow += rowstride;
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