tree: 6aa4138bdfe2839850c849df2415e815de35251f [path history] [tgz]
  1. fonts/
  2. graphs/
  3. clusterfuzz-testcase-minimized-hb-subset-fuzzer-6461128124465152
  4. decode-seed.py
  5. glob.py
  6. hb-fuzzer.hh
  7. hb-gpu-fuzzer.cc
  8. hb-raster-fuzzer.cc
  9. hb-repacker-fuzzer.cc
  10. hb-shape-fuzzer.cc
  11. hb-shape-input.hh
  12. hb-subset-fuzzer.cc
  13. hb-vector-fuzzer.cc
  14. hb_fuzzing_tools.py
  15. main.cc
  16. meson.build
  17. README.md
  18. record-subset-test.py
  19. record-test.py
test/fuzzing/README.md

To build the fuzzers with libFuzzer to perform actual fuzzing, build with:

CXX=clang++ CXXFLAGS="-fsanitize=address,fuzzer-no-link" meson fuzzbuild --default-library=static -Dfuzzer_ldflags="-fsanitize=address,fuzzer"

ninja -Cfuzzbuild

Then, run the fuzzer like this:

fuzzbuild/test/fuzzing/hb-{shape,raster,vector,subset,set}-fuzzer [-max_len=2048] [CORPUS_DIR]

Where max_len specifies the maximal length of font files to handle. The smaller the faster.

For more details consult the following locations: