Simple Directmedia Layer
Go to file
Sam Lantinga 892c8d5058 Fixed bug 4536 - Heap-Buffer Overflow in SDL_GetRGB pertaining to SDL_pixels.c
Ozkan Sezer

As for the issue: This bmp reports bpp=0, therefore SDL_CalculatePitch()
returns pitch==0, which is then fed to SDL_malloc() (which is malloc())
and malloc(0) returns _something_ which is not NULL but not someting
that we expect..  Then testsprite.c:LoadSprite() accesses the pixels
as *(Uint8*)pixels which valrind reports as:

==15533== Invalid read of size 1
==15533==    at 0x8048C08: LoadSprite (testsprite.c:45)
==15533==    by 0x80492FC: main (testsprite.c:224)
==15533==  Address 0x449e588 is 0 bytes after a block of size 0 alloc'd
==15533==    at 0x40072B2: malloc (vg_replace_malloc.c:270)
==15533==    by 0x4045719: SDL_CreateRGBSurface (SDL_surface.c:126)
==15533==    by 0x40403C1: SDL_LoadBMP_RW (SDL_bmp.c:237)
==15533==    by 0x8048BB2: LoadSprite (testsprite.c:36)
==15533==    by 0x80492FC: main (testsprite.c:224)

Besides, valrind also reports this:
==15533== Conditional jump or move depends on uninitialised value(s)
==15533==    at 0x40403F3: SDL_LoadBMP_RW (SDL_bmp.c:247)
==15533==    by 0x8048BB2: LoadSprite (testsprite.c:36)
==15533==    by 0x80492FC: main (testsprite.c:224)


Easy/quick solution would be early-rejecting a bmp with 0 bpp from SDL_bmp.c:SDL_LoadBMP_RW()
2019-09-03 11:55:20 -07:00
acinclude Added missing PKG_CONFIG macros 2019-03-16 17:39:15 -07:00
android-project Fixed bug 3918 - HIDAPI, CMake support for android project 2019-08-27 11:38:43 +02:00
android-project-ant Added the old ant Android build project structure 2017-10-28 12:11:25 -07:00
build-scripts Updated version to 2.0.10 2019-06-17 10:13:28 -07:00
cmake hidapi: Add SDL_hidapi.c, allows support for multiple hidapi backends. 2019-07-31 12:20:55 -04:00
debian Updated version to 2.0.10 2019-06-17 10:13:28 -07:00
docs Fixed bug 3918 - CMake support for android project 2019-08-11 15:23:37 +02:00
include [ SDL ] Fix compile error building for Windows/ARM64 on Visual Studio 2017 Win10 SDK 10.0.18362.0 which requires ar,74intr.h/arm64_neon.h header instead of armintr.h/arm_neon.h for intrinsics. 2019-08-08 13:26:05 -07:00
src Fixed bug 4536 - Heap-Buffer Overflow in SDL_GetRGB pertaining to SDL_pixels.c 2019-09-03 11:55:20 -07:00
test minor warning fixes. 2019-08-04 14:56:02 +03:00
VisualC Rolling back GameCube HIDAPI support 2019-06-19 15:54:21 -07:00
VisualC-WinRT Added display event files to the Visual Studio projects 2018-08-23 02:48:47 -07:00
visualtest test: unify all the command line usage logging. 2019-05-28 17:39:13 -04:00
wayland-protocols wayland: ask xdg-decoration protocol extension to use server-side decorations if possible. 2018-11-04 21:08:40 +01:00
Xcode fix permissions 2019-08-08 23:35:02 +03:00
Xcode-iOS fix permissions 2019-08-23 03:01:10 +03:00
.hgignore remove test/aclocal.m4 2019-08-03 12:49:50 +03:00
Android.mk Android: add more warning flags 2019-08-30 08:43:13 +02:00
autogen.sh Don't use pushd/popd in autogen.sh; Ubuntu's /bin/sh doesn't support it. 2016-12-26 22:58:58 -05:00
BUGS.txt BUGS.txt: Changed mailing list link to discourse.libsdl.org. 2017-04-01 00:05:25 -04:00
cmake_uninstall.cmake.in Fixed bug 3867 - Can't find install_manifest.txt when running 'uninstall' target 2017-10-12 08:44:45 -07:00
CMakeLists.txt Fixed bug 3918 - HIDAPI, CMake support for android project 2019-08-27 11:38:43 +02:00
configure Disable HIDAPI by default, as it breaks on Linux when trying to use libusb with non-root permissions on some distributions 2019-08-12 13:35:36 -07:00
configure.ac Disable HIDAPI by default, as it breaks on Linux when trying to use libusb with non-root permissions on some distributions 2019-08-12 13:35:36 -07:00
COPYING.txt Updated copyright for 2019 2019-01-04 22:01:14 -08:00
CREDITS.txt Fixed crash if initialization of EGL failed but was tried again later. 2015-06-21 17:33:46 +02:00
INSTALL.txt More HTTPS doc tweaks. 2017-02-16 16:59:07 -05:00
Makefile.in Add public APIs for creating a Metal view attached to an SDL window. Add SDL_metal.h. 2019-08-05 12:35:32 -03:00
Makefile.minimal Added a dummy sensor driver 2018-08-21 13:29:21 -07:00
Makefile.os2 minor warning fixes. 2019-08-04 14:56:02 +03:00
Makefile.pandora Added a dummy sensor driver 2018-08-21 13:29:21 -07:00
Makefile.psp Added a dummy sensor driver 2018-08-21 13:29:21 -07:00
Makefile.wiz Added a dummy sensor driver 2018-08-21 13:29:21 -07:00
README-SDL.txt More HTTPS changes in the documentation. 2017-02-16 16:52:03 -05:00
README.txt readme: correct webpage URL to use HTTPS. 2017-02-16 13:30:34 -05:00
sdl2-config.cmake.in Applied Ubuntu patch bug_822210_fix_sdl2-config.cmake_whitespace.patch 2016-10-07 15:08:37 -07:00
sdl2-config.in Fixed crash if initialization of EGL failed but was tried again later. 2015-06-21 17:33:46 +02:00
sdl2.m4 Fixed bug 4544 - SDL2.m4 SDL2.framework patch made it impossible to fail detection 2019-03-16 18:45:10 -07:00
sdl2.pc.in Fixed crash if initialization of EGL failed but was tried again later. 2015-06-21 17:33:46 +02:00
SDL2.spec.in Fixed bug 4615 - RPM Build fails due to unpackaged files 2019-06-11 19:58:10 -07:00
SDL2Config.cmake Fixed bug 3651 - CMake build does not install CMake package configuration 2017-08-09 19:03:10 -07:00
TODO.txt Fixed crash if initialization of EGL failed but was tried again later. 2015-06-21 17:33:46 +02:00
VisualC.html Fixed two typos in documentation. 2016-01-12 22:23:53 +01:00
WhatsNew.txt Made it more explicit that 2.0.10 and newer are required for the SDL_RW* functions 2019-07-01 09:05:15 -07:00

                         Simple DirectMedia Layer

                                  (SDL)

                                Version 2.0

---
https://www.libsdl.org/

Simple DirectMedia Layer is a cross-platform development library designed
to provide low level access to audio, keyboard, mouse, joystick, and graphics
hardware via OpenGL and Direct3D. It is used by video playback software,
emulators, and popular games including Valve's award winning catalog
and many Humble Bundle games.

More extensive documentation is available in the docs directory, starting
with README.md

Enjoy!
	Sam Lantinga				(slouken@libsdl.org)