summaryrefslogtreecommitdiff
path: root/source/fitz/draw-edge.c
AgeCommit message (Collapse)Author
2014-01-08Fix fuzzing bug due to float representation limitations.Robin Watts
The gel bbox was being stored internally as floats (despite only holding ints). This means that as numbers get large the bbox can become approximate, rather than exact. If the bbox becomes smaller than it should, this causes crashes in the scanline filling code. This is seen with: tests_private/fuzzing/mupdf2/17f8aee51ac776994af0b36195cdadd7_signal_sigsegv_5607be_7308_5912.pdf The solution is simply to use ints rather than floats. Thanks to Mateusz Jurczyk and Gynvael Coldwind of the Google Security Team for providing the example files.
2013-10-11prevent potential heap access violationSimon Bünzli
fz_reset_gel fails to reset the length of active edges, which could (AFAICT) lead to pointers in gel->active pointing to memory that's been previously freed by fz_resize_array.
2013-09-30Bug 694526: Fix hang in stroking path.Robin Watts
The first file of this bug (hang-66.pdf) hangs while stroking a VERY long line segment; so long that 'used' is sufficinetly large that: used += dash_segment_len doesn't result in a change in the value of used. The fix is to clip strokes to the edge of the gel's clip area, meaning that this should never occur.
2013-09-13Fix various compile warnings spotted by the cluster.Robin Watts
2013-07-24Fix memory overwrites when plotting glyphs that are completely clipped.Robin Watts
This bug has been in here for ages, but was masked by a bug in the gel clipping that was fixed by Tor earlier.
2013-07-24Fix MIN/MAX confusion in edge list clipping.Tor Andersson
The case with infinite scissor didn't work.
2013-06-20Rearrange source files.Tor Andersson