mirror of
				https://github.com/coturn/coturn.git
				synced 2025-10-26 04:21:00 +01: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
 |