gdiplus: Improve GdipFillRectangles parameter validation.
This commit is contained in:
parent
ed11dc0ba3
commit
78459aea0d
|
@ -3747,7 +3747,7 @@ GpStatus WINGDIPAPI GdipFillRectangles(GpGraphics *graphics, GpBrush *brush, GDI
|
|||
|
||||
TRACE("(%p, %p, %p, %d)\n", graphics, brush, rects, count);
|
||||
|
||||
if(!rects)
|
||||
if(!graphics || !brush || !rects || count <= 0)
|
||||
return InvalidParameter;
|
||||
|
||||
if (graphics->image && graphics->image->type == ImageTypeMetafile)
|
||||
|
|
|
@ -5493,6 +5493,52 @@ static void test_clipping_2(void)
|
|||
DeleteDC(hdc);
|
||||
}
|
||||
|
||||
|
||||
static void test_GdipFillRectangles(void)
|
||||
{
|
||||
GpStatus status;
|
||||
GpGraphics *graphics = NULL;
|
||||
GpBrush *brush = NULL;
|
||||
HDC hdc = GetDC( hwnd );
|
||||
GpRectF rects[2] = {{0,0,10,10}, {10,10,10,10}};
|
||||
|
||||
ok(hdc != NULL, "Expected HDC to be initialized\n");
|
||||
|
||||
status = GdipCreateFromHDC(hdc, &graphics);
|
||||
expect(Ok, status);
|
||||
ok(graphics != NULL, "Expected graphics to be initialized\n");
|
||||
|
||||
status = GdipCreateSolidFill((ARGB)0xffff00ff, (GpSolidFill**)&brush);
|
||||
expect(Ok, status);
|
||||
ok(brush != NULL, "Expected brush to be initialized\n");
|
||||
|
||||
status = GdipFillRectangles(NULL, brush, rects, 2);
|
||||
expect(InvalidParameter, status);
|
||||
|
||||
status = GdipFillRectangles(graphics, NULL, rects, 2);
|
||||
expect(InvalidParameter, status);
|
||||
|
||||
status = GdipFillRectangles(graphics, brush, NULL, 2);
|
||||
expect(InvalidParameter, status);
|
||||
|
||||
status = GdipFillRectangles(graphics, brush, rects, 0);
|
||||
expect(InvalidParameter, status);
|
||||
|
||||
status = GdipFillRectangles(graphics, brush, rects, -1);
|
||||
expect(InvalidParameter, status);
|
||||
|
||||
status = GdipFillRectangles(graphics, brush, rects, 1);
|
||||
expect(Ok, status);
|
||||
|
||||
status = GdipFillRectangles(graphics, brush, rects, 2);
|
||||
expect(Ok, status);
|
||||
|
||||
GdipDeleteBrush(brush);
|
||||
GdipDeleteGraphics(graphics);
|
||||
|
||||
ReleaseDC(hwnd, hdc);
|
||||
}
|
||||
|
||||
START_TEST(graphics)
|
||||
{
|
||||
struct GdiplusStartupInput gdiplusStartupInput;
|
||||
|
@ -5563,6 +5609,7 @@ START_TEST(graphics)
|
|||
test_getdc_scaled();
|
||||
test_alpha_hdc();
|
||||
test_bitmapfromgraphics();
|
||||
test_GdipFillRectangles();
|
||||
|
||||
GdiplusShutdown(gdiplusToken);
|
||||
DestroyWindow( hwnd );
|
||||
|
|
Loading…
Reference in New Issue