1 /* libfuzzer test code for oniguruma
2 * author: Hanno Böck, license: CC0/public domain
5 * compile oniguruma with something like
6 ./configure CC=clang LD=clang CFLAGS="-fsanitize-coverage=edge -fsanitize=address" \
7 LDFLAGS="-fsanitize-coverage=edge -fsanitize=address"
8 * Compile libfuzzer stub and link against static libonig.a and libFuzzer.a:
9 clang++ libfuzzer-onig.cpp src/.libs/libonig.a libFuzzer.a -o libfuzzer-onig \
10 -fsanitize-coverage=edge -fsanitize=address
11 * Put sample patterns in directory "in/"
15 Consult libfuzzer docs for further details and how to create libFuzzer.a:
16 http://llvm.org/docs/LibFuzzer.html
21 #include <oniguruma.h>
23 extern "C" int LLVMFuzzerTestOneInput(const uint8_t * Data, size_t Size)
27 (®, Data, Data + Size, ONIG_OPTION_DEFAULT, ONIG_ENCODING_UTF8,
28 ONIG_SYNTAX_DEFAULT, 0) == 0)