From 311f5e10cd58cc3fadd71b02963fdfc414b33a57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= Date: Wed, 31 Aug 2022 10:14:18 +0100 Subject: ofz#46165 avoid a divide by zero seen fuzzing libreoffice rendering --- src/cairo-pen.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/cairo-pen.c b/src/cairo-pen.c index 9bf960423..a4b84aae5 100644 --- a/src/cairo-pen.c +++ b/src/cairo-pen.c @@ -289,7 +289,12 @@ _cairo_pen_vertices_needed (double tolerance, } else if (tolerance >= major_axis) { num_vertices = 4; } else { - num_vertices = ceil (2*M_PI / acos (1 - tolerance / major_axis)); + double divisor = acos (1 - tolerance / major_axis); + + if (divisor == 0.0) + return 4; + + num_vertices = ceil (2*M_PI / divisor); /* number of vertices must be even */ if (num_vertices % 2) -- cgit v1.2.1