# HG changeset patch
# User Sam Lantinga <slouken@libsdl.org>
# Date 1550504903 28800
#      Mon Feb 18 07:48:23 2019 -0800
# Branch SDL-1.2
# Node ID 19d8c3b9c25143f71a34ff40ce1df91b4b3e3b78
# Parent  8586f153eedec4c4e07066d6248ebdf67f10a229
Fixed bug 4500 - Heap-Buffer Overflow in Map1toN pertaining to SDL_pixels.c

Petr Pisar

The reproducer has these data in BITMAPINFOHEADER:

biSize = 40
biBitCount = 8
biClrUsed = 131075

SDL_LoadBMP_RW() function passes biBitCount as a color depth to SDL_CreateRGBSurface(), thus 256-color pallete is allocated. But then biClrUsed colors are read from a file and stored into the palette. SDL_LoadBMP_RW should report an error if biClrUsed is greater than 2^biBitCount.

CVE: CVE-2019-7638
CVE: CVE-2019-7636
Upstream-Status: Backport
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>

diff -r 8586f153eede -r 19d8c3b9c251 src/video/SDL_bmp.c
--- a/src/video/SDL_bmp.c	Sun Jan 13 15:27:50 2019 +0100
+++ b/src/video/SDL_bmp.c	Mon Feb 18 07:48:23 2019 -0800
@@ -233,6 +233,10 @@
 	if ( palette ) {
 		if ( biClrUsed == 0 ) {
 			biClrUsed = 1 << biBitCount;
+		} else if ( biClrUsed > (1 << biBitCount) ) {
+			SDL_SetError("BMP file has an invalid number of colors");
+			was_error = SDL_TRUE;
+			goto done;
 		}
 		if ( biSize == 12 ) {
 			for ( i = 0; i < (int)biClrUsed; ++i ) {
