src/tools/ftfuzzer


Log

Author Commit Date CI Message
Werner Lemberg 8fb9d22a 2016-12-30T19:51:37 [ftfuzzer] Replace `rand' with an xorshift algorithm. * src/tools/ftfuzzer/ftfuzzer.cc: Don't include `stdlib.h'. (Random): Implement and use a 32bit `xorshift' algorithm.
Werner Lemberg 6b21d128 2016-12-30T10:00:54 [ftfuzzer] Restrict number of tested bitmap strikes. Malformed fonts often have large values for the number of bitmap strikes, and FreeType doesn't check the validity of all bitmap strikes in advance. Reported as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=353 * src/tools/ftfuzzer/ftfuzzer.cc: Include `stdlib.h' for `rand'. (Random): Small class to provide n randomly selected numbers (without repitition) out of the value set [0,N]. (LLVMFuzzerTestOneInput): Use it to test only up to 10 bitmap strikes.
Werner Lemberg ada82971 2016-12-22T08:25:42 [ftfuzzer] Always use Adobe CFF engine. * src/tools/ftfuzzer/ftfuzzer.cc (FT_Global::FT_Global): Implement it.
Werner Lemberg 71b617d8 2016-09-29T19:53:39 [ftfuzzer] Speed up. * src/tools/ftfuzzer/ftfuzzer.cc (LLVMFuzzerTestOneInput): Don't check for embedded bitmaps if we have a non-default instance.
Werner Lemberg d11e8b6e 2016-09-25T15:32:04 * src/tools/ftfuzzer/ftfuzzer.cc (LLVMFuzzerTestOneInput): Fix typo.
Werner Lemberg deb26155 2016-09-09T22:13:33 [ftfuzzer] Minor improvements. * src/tools/ftfuzzer/ftfuzzer.cc (LLVMFuzzerTestOneInput): Ignore invalid strikes. Use better values for call to `FT_Set_Char_Size'.
Werner Lemberg ee6b4115 2016-03-12T23:48:13 [ftfuzzer] Improve coverage of rasterfuzzer. * src/tools/ftfuzzer/rasterfuzzer.cc (LLVMFuzzerTestOneInput): Use input data for `tags' array also. Trim input data to get more positive hits.
Werner Lemberg a8b95622 2016-03-01T09:37:12 [ftfuzzer] Add unit for testing smooth and black rasterizers. * src/tools/ftfuzzer/rasterfuzzer.cc: New file.
Werner Lemberg 015c6e08 2016-03-01T06:45:52 Fix clang warnings. * src/autofit/aflatin.c (af_latin_hints_compute_segments): Use FT_UShort for `min_flags' and `max_flags'. Initialize `prev_*' variables. * src/cff/cffobjs.c (cff_face_init) [FT_DEBUG_LEVEL_TRACE]: Fix types of local variables. * src/smooth/ftgrays.c (gray_dump_cells) [FT_DEBUG_LEVEL_TRACE]: Update `printf' format string. * src/tools/ftfuzzer/ftfuzzer.cc (setIntermediateAxis): Add cast. (LLVMFuzzerTestOneInput): Fix loop type.
Werner Lemberg 9cc2d467 2016-02-05T11:52:50 Minor.
Werner Lemberg 9adeab64 2016-01-13T11:54:10 Update copyright year.
Werner Lemberg 7363414b 2015-11-07T06:32:46 [ftfuzzer] Add copyright notices; do some formatting.
Werner Lemberg 6bda921d 2015-11-02T06:53:48 [ftfuzzer] Update README file.
Werner Lemberg bcf618b2 2015-11-02T06:50:49 [ftfuzzer] Add support for multiple files (patch #8779). Currently, libFuzzer only supports mutation of a single file. We circumvent this problem by using an uncompressed tar archive as multiple-file input for the fuzzer. This patch enables tests of `FT_Attach_Stream' and AFM/PFM parsing; a constructed tarball should contain a font file as the first element, and files to be attached as further elements. * src/tools/ftfuzzer/ftfuzzer.cc: Include libarchive headers. (archive_read_entry_data, parse_data): New functions. (LLVMFuzzerTestOneInput): Updated. * src/tools/ftfuzzer/ftmutator.cc: New file, providing a custom mutator for libFuzzer that can mutate tarballs in a sensible way.
Werner Lemberg 3066f5f5 2015-10-21T14:05:41 Revert erroneously applied commits.
Werner Lemberg e6593389 2015-10-21T08:04:29 [sfnt] Avoid unnecessarily large allocation for WOFFs (#46257). * src/sfnt/sfobjs.c (woff_open_font): Use WOFF's `totalSfntSize' only after thorough checks. Add tracing messages.
Kostya Serebryany 266976b1 2015-10-15T22:15:53 add src/tools/ftfuzzer/README
Werner Lemberg 8b76eaf0 2015-10-15T18:28:43 * src/tools/ftfuzzer/ftfuzzer.cc: Handle fixed sizes (#46211).
Werner Lemberg bdb56bba 2015-10-13T11:51:13 [ftfuzzer] Handle TTCs and MM/GX variations. This patch also contains various other improvements. * src/tools/ftfuzzer/ftfuzzer.cc: Add preprocessor guard to reject pre-C++11 compilers. (FT_Global): New class. Use it to provide a global constructor and destructor for the `FT_Library' object. (setIntermediateAxis): New function to select an (arbitrary) instance. (LLVMFuzzerTestOneInput): Loop over all faces and named instances. Also call `FT_Set_Char_Size'.
Kostya Serebryany dde84f25 2015-10-07T22:18:22 [ftfuzzer] Add support for LLVM's LibFuzzer. * src/tools/ftfuzzer/ftfuzzer.cc, src/tools/runinput.cc: New files.