xref: /freebsd/crypto/krb5/src/tests/fuzzing/README (revision f1c4c3daccbaf3820f0e2224de53df12fc952fcc)
1This directory builds fuzzing targets for oss-fuzz compatibility.
2 If you wish to build it locally, you can do so by using the given
3 guide below. Note that it only works on GNU/Linux.
4
5Export flags required for building fuzzing targets.
6```bash
7export CC=clang
8export CXX=clang++
9export CFLAGS="-g -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -fsanitize=address -fsanitize=fuzzer-no-link"
10export CXXFLAGS="-g -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -fsanitize=address -fsanitize=fuzzer-no-link"
11export LIB_FUZZING_ENGINE="-fsanitize=fuzzer"
12```
13
14Compilation of the fuzzing targets.
15```bash
16autoreconf
17./configure CFLAGS="-fcommon $CFLAGS" CXXFLAGS="-fcommon $CXXFLAGS" \
18    --enable-static --disable-shared --enable-ossfuzz
19make
20```
21
22Running fuzzing targets.
23```bash
24mkdir fuzz_${TARGET}_corpus
25./fuzz_${TARGET} fuzz_${TARGET}_corpus/ fuzz_${TARGET}_seed_corpus
26```
27