Module: wine Branch: master Commit: 0f6a66e91967cfd53f90975b172d8f06c31f8be1 URL: https://gitlab.winehq.org/wine/wine/-/commit/0f6a66e91967cfd53f90975b172d8f0...
Author: Bernhard Übelacker bernhardu@mailbox.org Date: Sun Jan 14 10:24:45 2024 +0100
wing32: Avoid crash in WinGGetDIBPointer when called with NULL bitmap info.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=56135
---
dlls/wing32/tests/wing32.c | 3 +++ dlls/wing32/wing32.c | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/dlls/wing32/tests/wing32.c b/dlls/wing32/tests/wing32.c index 1a3c958ff02..e3f01ff22bc 100644 --- a/dlls/wing32/tests/wing32.c +++ b/dlls/wing32/tests/wing32.c @@ -51,6 +51,9 @@ static void test_WinGGetDIBPointer(void) dib = WinGGetDIBPointer(NULL, NULL); ok(dib == NULL, "WinGGetDIBPointer returned unexpected value %p\n", dib);
+ dib = WinGGetDIBPointer(bmp, NULL); + ok(dib != NULL, "WinGGetDIBPointer failed\n"); + dib = WinGGetDIBPointer(bmp, &bmi); ok(dib != NULL, "WinGGetDIBPointer failed\n");
diff --git a/dlls/wing32/wing32.c b/dlls/wing32/wing32.c index b6702ba8017..14012206286 100644 --- a/dlls/wing32/wing32.c +++ b/dlls/wing32/wing32.c @@ -72,7 +72,7 @@ void * WINAPI WinGGetDIBPointer( HBITMAP hbmp, BITMAPINFO *bmi )
if (GetObjectW( hbmp, sizeof(ds), &ds ) == sizeof(ds)) { - bmi->bmiHeader = ds.dsBmih; + if (bmi) bmi->bmiHeader = ds.dsBmih; return ds.dsBm.bmBits; } return NULL;