From 15fd374b68552cab7bf0c9fac581bb03d52e5f5b Mon Sep 17 00:00:00 2001 From: Petr Mladek Date: Tue, 15 Feb 2011 14:17:24 +0100 Subject: crashing oosplash and malformed picture (bnc#652562) it was visible only on screens that did not use 32bpp Signed-off-by: Thorsten Behrens Signed-off-by: Michael Meeks Signed-off-by: Jan Holesovsky --- desktop/unx/source/splashx.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'desktop/unx/source/splashx.c') diff --git a/desktop/unx/source/splashx.c b/desktop/unx/source/splashx.c index 6e7088b42c..1c6ab45225 100644 --- a/desktop/unx/source/splashx.c +++ b/desktop/unx/source/splashx.c @@ -333,6 +333,7 @@ static void create_pixmap() int x, y; \ for ( y = 0; y < height; ++y ) \ { \ + out = data + y * bytes_per_line; \ unsigned long red_delta = 0, green_delta = 0, blue_delta = 0; \ color_t *in = (color_t *)bitmap_rows[y]; \ for ( x = 0; x < width; ++x, ++in ) \ @@ -376,7 +377,7 @@ static void create_pixmap() { if ( machine_byte_order == byte_order && byte_order == LSBFirst ) COPY_IN_OUT( 3, *( (color_t *)out ) = *( (color_t *)( &pixel ) ); out += 3; ) - if ( machine_byte_order == byte_order && byte_order == MSBFirst ) + else if ( machine_byte_order == byte_order && byte_order == MSBFirst ) COPY_IN_OUT( 3, uint32_t tmp = pixel; *( (uint8_t *)out ) = *( (uint8_t *)(&tmp) + 1 ); *( (uint8_t *)out + 1 ) = *( (uint8_t *)(&tmp) + 2 ); -- cgit v1.2.3