harfbuzz/test/fuzzing
Garret Rieger b5acde43ed [subset] check pending/subsetted tag sets for alloc failure. 2022-12-13 15:31:40 -07:00
..
fonts [subset] check pending/subsetted tag sets for alloc failure. 2022-12-13 15:31:40 -07:00
graphs [repacker] fix fuzzer reported stack overflow. 2022-12-07 10:32:56 -07:00
sets [fuzz] minor, move two fuzzer cases to their correct place 2020-02-12 19:17:18 +03:30
Makefile.am Fix make dist 2022-08-03 19:56:29 +02:00
README.md Update test/fuzzing/README 2022-08-03 11:31:34 -06:00
hb-draw-fuzzer.cc [cff] Add a max work counter 2022-07-18 13:57:59 -06:00
hb-fuzzer.hh [fuzzer] In 50% of runs don't fail the allocator 2022-07-01 15:25:09 -06:00
hb-repacker-fuzzer.cc [repacker] use memcpy to avoid alignment issues. 2022-12-05 14:13:47 -07:00
hb-set-fuzzer.cc [fuzzer] In 50% of runs don't fail the allocator 2022-07-01 15:25:09 -06:00
hb-shape-fuzzer.cc [fuzzer] In 50% of runs don't fail the allocator 2022-07-01 15:25:09 -06:00
hb-subset-fuzzer.cc [fuzzer] In 50% of runs don't fail the allocator 2022-07-01 15:25:09 -06:00
main.cc [blob] Add failing versions of create API 2021-06-15 13:56:30 -06:00
meson.build [repacker] only build repacker fuzzer when experimental api is enabled. 2022-12-02 00:02:14 +00:00
run-draw-fuzzer-tests.py [test] Remove timeout from test runners 2020-10-15 00:49:02 -07:00
run-repacker-fuzzer-tests.py [repacker] add test for repacker fuzzer. 2022-12-01 20:17:40 +00:00
run-shape-fuzzer-tests.py [test] Remove timeout from test runners 2020-10-15 00:49:02 -07:00
run-subset-fuzzer-tests.py [test] Remove timeout from test runners 2020-10-15 00:49:02 -07:00

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,draw,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: