123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- #!/bin/bash -eu
- build(){
- export CFLAGS="$1"
- export CXXFLAGS="$1"
- export LIB_FUZZING_ENGINE=-fsanitize=fuzzer
- mkdir build && cd build/
- cmake -DFUZZER=ON -DLIB_FUZZING_ENGINE="$LIB_FUZZING_ENGINE" ../../.
- make -j$(nproc)
- cd fuzzing/
- unzip FuzzStun_seed_corpus.zip
- unzip FuzzStunClient_seed_corpus.zip
- mkdir FuzzStun_Corpus
- mkdir FuzzStunClient_Corpus
- }
- run(){
- DIR=build/fuzzing
- if [ $1 == '0' ]
- then
- ./$DIR/FuzzStun $DIR/FuzzStun_Corpus/ $DIR/FuzzStun_seed_corpus
- else
- ./$DIR/FuzzStunClient $DIR/FuzzStunClient_Corpus/ $DIR/FuzzStunClient_seed_corpus
- fi
- }
- help(){
- echo "use: ./$0 ASan | UBSan | MSan | Run 0 | Run 1"
- }
- if [ -z "$1" ]
- then
- help
- elif [ $1 == "ASan" ]
- then
- build "-O1 -fno-omit-frame-pointer -gline-tables-only -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -fsanitize=address -fsanitize-address-use-after-scope -fsanitize=fuzzer-no-link"
- elif [ "$1" == "UBSan" ]
- then
- build "-O1 -fno-omit-frame-pointer -gline-tables-only -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -fsanitize=array-bounds,bool,builtin,enum,float-divide-by-zero,function,integer-divide-by-zero,null,object-size,return,returns-nonnull-attribute,shift,signed-integer-overflow,unsigned-integer-overflow,unreachable,vla-bound,vptr -fno-sanitize-recover=array-bounds,bool,builtin,enum,float-divide-by-zero,function,integer-divide-by-zero,null,object-size,return,returns-nonnull-attribute,shift,signed-integer-overflow,unreachable,vla-bound,vptr -fsanitize=fuzzer-no-link"
- elif [ "$1" == "MSan" ]
- then
- build "-O1 -fno-omit-frame-pointer -gline-tables-only -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -fsanitize=memory -fsanitize-memory-track-origins -fsanitize=fuzzer-no-link"
- elif [ "$1" == "Run" ]
- then
- run $2
- else
- help
- fi
|