Skip to content

Commit

Permalink
Merge pull request #125 from HexHive/dev
Browse files Browse the repository at this point in the history
k-scheduler: bug fixes to work with targets with 'non-wrapper' drivers
  • Loading branch information
adrianherrera authored Nov 12, 2022
2 parents 326cf16 + 9469c54 commit 73a0503
Show file tree
Hide file tree
Showing 5 changed files with 22 additions and 218 deletions.
18 changes: 10 additions & 8 deletions fuzzers/k_scheduler/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -19,16 +19,18 @@ export PATH="/usr/local/go/bin:$PATH"
export GOPATH="$FUZZER/repo/go"
export PATH="$GOPATH/bin:$PATH"

export CFLAGS="$CFLAGS -O2 -fsanitize-coverage=trace-pc-guard,no-prune -fno-omit-frame-pointer -gline-tables-only"
export CXXFLAGS="$CXXFLAGS -O2 -fsanitize-coverage=trace-pc-guard,no-prune -fno-omit-frame-pointer -gline-tables-only"

export LLVM_CC_NAME="clang"
export LLVM_CXX_NAME="clang++"
export CC="gclang"
export CXX="gclang++"

export CFLAGS="-fsanitize-coverage=trace-pc-guard,no-prune -O2 -fno-omit-frame-pointer -gline-tables-only"
export CXXFLAGS="-fsanitize-coverage=trace-pc-guard,no-prune -O2 -fno-omit-frame-pointer -gline-tables-only"

# Build AFL runtime library and AFL driver
$CC -O2 -c -w "$FUZZER/repo/kscheduler/afl_integration/afl-2.52b_kscheduler/llvm_mode/afl-llvm-rt.o.c" -o afl-llvm-rt.o
$CXX -std=c++11 -O2 -c "$FUZZER/repo/kscheduler/libfuzzer_integration/llvm_11.0.1/compiler-rt/lib/fuzzer/afl/afl_driver.cpp"
ar r "$OUT/afl_llvm_rt_driver.a" afl_driver.o afl-llvm-rt.o
rm afl_driver.o afl-llvm-rt.o
# Build AFL driver and runtime
$CXX -std=c++11 -c \
"$FUZZER/repo/kscheduler/libfuzzer_integration/llvm_11.0.1/compiler-rt/lib/fuzzer/afl/afl_driver.cpp" \
-o "$OUT/afl_driver.o"
$CC -c -w \
"$FUZZER/repo/kscheduler/afl_integration/afl-2.52b_kscheduler/llvm_mode/afl-llvm-rt.o.c" \
-o "$OUT/afl-llvm-rt.o"
6 changes: 5 additions & 1 deletion fuzzers/k_scheduler/fetch.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,8 @@ go install github.com/SRI-CSL/gllvm/cmd/...@latest

git clone --no-checkout https://github.com/Dongdongshe/K-Scheduler "$FUZZER/repo/kscheduler"
git -C "$FUZZER/repo/kscheduler" checkout 36bc5aa658fa7c9716aee08a8ff22419f28e3fe9
cp "$FUZZER/src/afl_driver.cpp" "$FUZZER/repo/kscheduler/libfuzzer_integration/llvm_11.0.1/compiler-rt/lib/fuzzer/afl/"

sed -i '{s/^int main/__attribute__((weak)) &/}' \
"$FUZZER/repo/kscheduler/libfuzzer_integration/llvm_11.0.1/compiler-rt/lib/fuzzer/afl/afl_driver.cpp"
sed -i '{s/^int LLVMFuzzerTestOneInput/__attribute__((weak)) &/}' \
"$FUZZER/repo/kscheduler/libfuzzer_integration/llvm_11.0.1/compiler-rt/lib/fuzzer/afl/afl_driver.cpp"
9 changes: 5 additions & 4 deletions fuzzers/k_scheduler/instrument.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,16 @@ export PATH="/usr/local/go/bin:$PATH"
export GOPATH="$FUZZER/repo/go"
export PATH="$GOPATH/bin:$PATH"

export CFLAGS="$CFLAGS -O2 -fsanitize-coverage=trace-pc-guard,no-prune -fno-omit-frame-pointer -gline-tables-only -fsanitize=fuzzer-no-link"
export CXXFLAGS="$CXXFLAGS -O2 -fsanitize-coverage=trace-pc-guard,no-prune -fno-omit-frame-pointer -gline-tables-only -fsanitize=fuzzer-no-link"
export LDFLAGS="$LDFLAGS -fsanitize=fuzzer-no-link"

export LLVM_CC_NAME="clang"
export LLVM_CXX_NAME="clang++"
export CC="gclang"
export CXX="gclang++"

export CFLAGS="$CFLAGS -fsanitize-coverage=trace-pc-guard,no-prune -O2 -fno-omit-frame-pointer -gline-tables-only"
export CXXFLAGS="$CXXFLAGS -fsanitize-coverage=trace-pc-guard,no-prune -O2 -fno-omit-frame-pointer -gline-tables-only"

export LIBS="$LIBS -l:afl_llvm_rt_driver.a -lstdc++"
export LIBS="$LIBS -l:afl_driver.o -l:afl-llvm-rt.o -lstdc++"

"$MAGMA/build.sh"
"$TARGET/build.sh"
Expand Down
2 changes: 2 additions & 0 deletions fuzzers/k_scheduler/run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ sleep 5s

export AFL_SKIP_CPUFREQ=1
export AFL_NO_AFFINITY=1
export AFL_NO_UI=1
export AFL_DRIVER_DONT_DEFER=1

"$FUZZER/repo/kscheduler/afl_integration/afl-2.52b_kscheduler/afl-fuzz" \
-m 100M -i "$TARGET/corpus/$PROGRAM" -o "$SHARED/findings" \
Expand Down
205 changes: 0 additions & 205 deletions fuzzers/k_scheduler/src/afl_driver.cpp

This file was deleted.

0 comments on commit 73a0503

Please sign in to comment.