From: 陈长胜 Subject: [PATCH] d2d1: Fix the stack overflow error caused by d2d_cdt_triangulate(). Message-Id: Date: Mon, 30 Aug 2021 07:43:00 +0000

From 8eb7a0c2bd9746f46b13a347e9d1c202ed07e41f Mon Sep 17 00:00:00 2001 From: Changsheng Chen Date: Mon, 30 Aug 2021 15:31:13 +0800 Subject: [PATCH] d2d1: Fix the stack overflow error caused by d2d_cdt_triangulate(). When vertex_count==1 or 0, d2d_cdt_triangulate will always be called by itself, causing stack overflow error. Signed-off-by: Changsheng Chen --- dlls/d2d1/geometry.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/dlls/d2d1/geometry.c b/dlls/d2d1/geometry.c index 6da93de3eb4..1ed57a0cb97 100644 --- a/dlls/d2d1/geometry.c +++ b/dlls/d2d1/geometry.c @@ -1217,6 +1217,9 @@ static BOOL d2d_cdt_triangulate(struct d2d_cdt *cdt, size_t start_vertex, size_t struct d2d_cdt_edge_ref left_inner, left_outer, right_inner, right_outer, tmp; size_t cut; + /* Only one veritices or no veritices */ + if (vertex_count == 1||vertex_count == 0) return FALSE; + /* Only two vertices, create a single edge. */ if (vertex_count == 2) { -- 2.20.1