diff options
author | Caolán McNamara <caolanm@redhat.com> | 2022-08-31 10:14:18 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2022-08-31 10:32:12 +0100 |
commit | 311f5e10cd58cc3fadd71b02963fdfc414b33a57 (patch) | |
tree | 6c5b0bead9a1e03035ca80187a99dd6538c5a3cc | |
parent | c188715bbebe4d8ed756e503e1da0bb96b3ec69d (diff) | |
download | cairo-311f5e10cd58cc3fadd71b02963fdfc414b33a57.tar.gz |
ofz#46165 avoid a divide by zero seen fuzzing libreoffice rendering
-rw-r--r-- | src/cairo-pen.c | 7 |
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) |