summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2022-08-31 10:14:18 +0100
committerCaolán McNamara <caolanm@redhat.com>2022-08-31 10:32:12 +0100
commit311f5e10cd58cc3fadd71b02963fdfc414b33a57 (patch)
tree6c5b0bead9a1e03035ca80187a99dd6538c5a3cc
parentc188715bbebe4d8ed756e503e1da0bb96b3ec69d (diff)
downloadcairo-311f5e10cd58cc3fadd71b02963fdfc414b33a57.tar.gz
ofz#46165 avoid a divide by zero seen fuzzing libreoffice rendering
-rw-r--r--src/cairo-pen.c7
1 files changed, 6 insertions, 1 deletions
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)