diff options
Diffstat (limited to 'drivers/video/cfb_console.c')
| -rw-r--r-- | drivers/video/cfb_console.c | 8 | 
1 files changed, 6 insertions, 2 deletions
| diff --git a/drivers/video/cfb_console.c b/drivers/video/cfb_console.c index 6db407359..b52e9edd2 100644 --- a/drivers/video/cfb_console.c +++ b/drivers/video/cfb_console.c @@ -1473,7 +1473,11 @@ int video_display_bitmap(ulong bmp_image, int x, int y)  			printf("Error: malloc in gunzip failed!\n");  			return 1;  		} -		if (gunzip(dst, CONFIG_SYS_VIDEO_LOGO_MAX_SIZE, +		/* +		 * NB: we need to force offset of +2 +		 * See doc/README.displaying-bmps +		 */ +		if (gunzip(dst+2, CONFIG_SYS_VIDEO_LOGO_MAX_SIZE-2,  			   (uchar *) bmp_image,  			   &len) != 0) {  			printf("Error: no valid bmp or bmp.gz image at %lx\n", @@ -1489,7 +1493,7 @@ int video_display_bitmap(ulong bmp_image, int x, int y)  		/*  		 * Set addr to decompressed image  		 */ -		bmp = (bmp_image_t *) dst; +		bmp = (bmp_image_t *)(dst+2);  		if (!((bmp->header.signature[0] == 'B') &&  		      (bmp->header.signature[1] == 'M'))) { |