mirror of
https://github.com/coturn/coturn.git
synced 2025-10-24 04:20:59 +02:00
Adding fuzzing to finding memory-corruption-related bugs. Hello coturn team, Can you check this pr harness suite for creating harnesses and compiling harnesses? Any other thoughts on adding a new interface for fuzzing support ? Signed-off-by: 0x34d <ajsinghyadav00@gmail.com> Signed-off-by: 0x34d <ajsinghyadav00@gmail.com>
52 lines
1.7 KiB
Bash
52 lines
1.7 KiB
Bash
#!/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
|