Jeff Smith : gdiplus: Check that GdipAddPathLine2 is passed at least one point.
Alexandre Julliard
julliard at winehq.org
Tue Apr 14 16:15:26 CDT 2020
Module: wine
Branch: master
Commit: 93a5ce24453e12cde5d3b04cf6e300e74439c78e
URL: https://source.winehq.org/git/wine.git/?a=commit;h=93a5ce24453e12cde5d3b04cf6e300e74439c78e
Author: Jeff Smith <whydoubt at gmail.com>
Date: Mon Apr 13 22:50:52 2020 -0500
gdiplus: Check that GdipAddPathLine2 is passed at least one point.
Signed-off-by: Jeff Smith <whydoubt at gmail.com>
Signed-off-by: Vincent Povirk <vincent at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/gdiplus/graphicspath.c | 2 +-
dlls/gdiplus/tests/graphicspath.c | 10 ++++++++++
2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/dlls/gdiplus/graphicspath.c b/dlls/gdiplus/graphicspath.c
index 2b191dd30d..4d5a73588f 100644
--- a/dlls/gdiplus/graphicspath.c
+++ b/dlls/gdiplus/graphicspath.c
@@ -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))
diff --git a/dlls/gdiplus/tests/graphicspath.c b/dlls/gdiplus/tests/graphicspath.c
index 0c5297249a..7670a6c41f 100644
--- a/dlls/gdiplus/tests/graphicspath.c
+++ b/dlls/gdiplus/tests/graphicspath.c
@@ -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);
More information about the wine-cvs
mailing list