diff options
Diffstat (limited to 'Build/source/libs/freetype2/freetype-src/src/tools/ftfuzzer/README')
-rw-r--r-- | Build/source/libs/freetype2/freetype-src/src/tools/ftfuzzer/README | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/Build/source/libs/freetype2/freetype-src/src/tools/ftfuzzer/README b/Build/source/libs/freetype2/freetype-src/src/tools/ftfuzzer/README new file mode 100644 index 00000000000..b781237933b --- /dev/null +++ b/Build/source/libs/freetype2/freetype-src/src/tools/ftfuzzer/README @@ -0,0 +1,77 @@ +ftfuzzer +======== + + +ftfuzzer.cc +----------- + +This file contains a target function for FreeType fuzzing. It can be +used with libFuzzer (http://llvm.org/docs/LibFuzzer.html) or +potentially any other similar fuzzer. + +Usage: + + 1. Build `libfreetype.a' and `ftfuzzer.cc' using the most recent + clang compiler with these flags: + + # for fuzzer coverage feedback + -fsanitize-coverage=edge,8bit-counters + # for bug checking + -fsanitize=address,signed-integer-overflow,shift + + You also need the header files from the `libarchive' library + (http://www.libarchive.org/) for handling tar files (see file + `ftmutator.cc' below for more). + + 2. Link with `libFuzzer' (it contains `main') and `libarchive'. + + 3. Run the fuzzer on some test corpus. + +The exact flags and commands may vary. + + +There is a continuous fuzzing bot that runs ftfuzzer. + + https://github.com/google/libfuzzer-bot/tree/master/freetype + +Check the bot configuration for the most current settings. + + +ftmutator.cc +------------ + +FreeType has the ability to `attach' auxiliary files to a font file, +providing additional information. The main usage is to load AFM files +for PostScript Type 1 fonts. + +However, libFuzzer currently only supports mutation of a single input +file. For this reason, `ftmutator.cc' contains a custom fuzzer +mutator that uses an uncompressed tar file archive as the input. The +first file in such a tarball gets opened by FreeType as a font, all +other files are treated as input for `FT_Attach_Stream'. + +Compilation is similar to `ftfuzzer.c'. + + +runinput.cc +----------- + +To run the target function on a set of input files, this file contains +a convenience `main' function. Link it with `ftfuzzer.cc', +`libfreetype.a', and `libarchive' and run like + + ./a.out my_tests_inputs/* + +---------------------------------------------------------------------- + +Copyright 2015 by +David Turner, Robert Wilhelm, and Werner Lemberg. + +This file is part of the FreeType project, and may only be used, +modified, and distributed under the terms of the FreeType project +license, LICENSE.TXT. By continuing to use, modify, or distribute +this file you indicate that you have read the license and understand +and accept it fully. + + +--- end of README --- |