5 export LC_CTYPE
=C.UTF-8
8 export CXX
=${CXX:-clang++}
9 export LIB_FUZZING_ENGINE
=${LIB_FUZZING_ENGINE:--fsanitize=fuzzer}
11 SANITIZER
=${SANITIZER:-address -fsanitize-address-use-after-scope}
12 flags
="-O1 -fno-omit-frame-pointer -gline-tables-only -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -fsanitize=$SANITIZER -fsanitize=fuzzer-no-link"
14 export CFLAGS
=${CFLAGS:-$flags}
15 export CXXFLAGS
=${CXXFLAGS:-$flags}
17 export OUT
=${OUT:-$(pwd)/out}
20 if [[ "$SANITIZER" == undefined
]]; then
21 additional_ubsan_checks
=alignment
22 UBSAN_FLAGS
="-fsanitize=$additional_ubsan_checks -fno-sanitize-recover=$additional_ubsan_checks"
23 CFLAGS
+=" $UBSAN_FLAGS"
24 CXXFLAGS
+=" $UBSAN_FLAGS"
28 .
/configure
--disable-all-programs --enable-libuuid --enable-libfdisk --enable-last --enable-fuzzing-engine --enable-libmount --enable-libblkid
29 make -j$
(nproc
) V
=1 check-programs
31 for d
in "$(dirname $0)"/..
/tests
/ts
/fuzzers
/test_
*_fuzz_files
; do
34 zip -jqr $OUT/${fuzzer}_seed_corpus.
zip "$d"
37 # create seed corpus for blkid fuzzing
38 unxz
-k "$(dirname $0)"/..
/tests
/ts
/blkid
/images-
*/*.xz
39 zip -jqrm $OUT/test_blkid_fuzz_seed_corpus.
zip "$(dirname $0)"/..
/tests
/ts
/blkid
/images-
*/*.img
41 find .
-maxdepth 1 -type f
-executable -name "test_*_fuzz" -exec mv {} $OUT \
;
42 find .
-type f
-name "fuzz-*.dict" -exec cp {} $OUT \
;