diff options
author | Uli Schlachter <psychon@znc.in> | 2023-03-03 15:46:03 +0000 |
---|---|---|
committer | Uli Schlachter <psychon@znc.in> | 2023-03-03 15:46:03 +0000 |
commit | 3b178e85867029a7fa53b4c314c96681a23016bf (patch) | |
tree | 35def59951fd07d4b4eafe925dc59a54a8e3192a | |
parent | 1f9004b3d0883cd8834b250c584aec31dc8ffadf (diff) | |
parent | 311f5e10cd58cc3fadd71b02963fdfc414b33a57 (diff) | |
download | cairo-3b178e85867029a7fa53b4c314c96681a23016bf.tar.gz |
Merge branch 'ofz46165' into 'master'
ofz#46165 avoid a divide by zero seen fuzzing libreoffice rendering
See merge request cairo/cairo!351
-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) |