gdiplus: Check that GdipAddPathLine2 is passed at least one point.

Signed-off-by: Jeff Smith <whydoubt@gmail.com>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Jeff Smith 2020-04-13 22:50:52 -05:00 committed by Alexandre Julliard
parent efd5f670bd
commit 93a5ce2445
2 changed files with 11 additions and 1 deletions

View File

@ -627,7 +627,7 @@ GpStatus WINGDIPAPI GdipAddPathLine2(GpPath *path, GDIPCONST GpPointF *points,
TRACE("(%p, %p, %d)\n", path, points, count);
if(!path || !points)
if(!path || !points || count < 1)
return InvalidParameter;
if(!lengthen_path(path, count))

View File

@ -308,6 +308,16 @@ static void test_line2(void)
}
GdipCreatePath(FillModeAlternate, &path);
status = GdipAddPathLine2(NULL, line2_points, 2);
expect(InvalidParameter, status);
status = GdipAddPathLine2(path, NULL, 2);
expect(InvalidParameter, status);
status = GdipAddPathLine2(path, line2_points, 0);
expect(InvalidParameter, status);
status = GdipAddPathLine2(path, line2_points, -1);
expect(InvalidParameter, status);
status = GdipAddPathLine2(path, line2_points, 3);
expect(Ok, status);
status = GdipAddPathLine2(path, &(line2_points[3]), 3);