google / fuzzbench

FuzzBench - Fuzzer benchmarking as a service.
https://google.github.io/fuzzbench/
Apache License 2.0
1.11k stars 269 forks source link

[SBFT24] Mystique #1919

Open am009 opened 11 months ago

vrthra commented 11 months ago

Dear participants,

Thank you for the PR. This is a heads-up that your branch will need to be rebased on the SBFT branch once it is ready. We are still in progress of preparing the branch and will message you once we are done. This branch adds the functionality of adding mutation testing as a measurement criteria. We do not expect this to affect the fuzzer integration. Hence, we do not expect any conflicts, however, if there are any, we will help you resolve them.

am009 commented 11 months ago

Hi, @vrthra.

I discovered that our fuzzer needs to build some benchmarks twice: one with afl-clang-fast, and one with our own compiler wrapper. In our integration Python code, we changed environment variables(CC and CXX) and called utils.build_benchmark() again. However, some benchmarks (e.g., bloaty_fuzz_target) build scripts directly call cmake without cleanup, so cmake is not aware of anything changed (it will not reconfigure because of env variables change), and nothing is rebuilt.

for example, there is no cleanup in the build script of bloaty_fuzz_target:

cd $WORK
cmake -G Ninja -DBUILD_TESTING=false $SRC/bloaty
ninja -j$(nproc)
cp fuzz_target $OUT
zip -j $OUT/fuzz_target_seed_corpus.zip $SRC/bloaty/tests/testdata/fuzz_corpus/*

I'm not sure if I'm asking the right person.

am009 commented 10 months ago

Hi, @vrthra.

I discovered that our fuzzer needs to build some benchmarks twice: one with afl-clang-fast, and one with our own compiler wrapper. In our integration Python code, we changed environment variables(CC and CXX) and called utils.build_benchmark() again. However, some benchmarks (e.g., bloaty_fuzz_target) build scripts directly call cmake without cleanup, so cmake is not aware of anything changed (it will not reconfigure because of env variables change), and nothing is rebuilt.

for example, there is no cleanup in the build script of bloaty_fuzz_target:

cd $WORK
cmake -G Ninja -DBUILD_TESTING=false $SRC/bloaty
ninja -j$(nproc)
cp fuzz_target $OUT
zip -j $OUT/fuzz_target_seed_corpus.zip $SRC/bloaty/tests/testdata/fuzz_corpus/*

I'm not sure if I'm asking the right person.

This is solved. Just delete os.environ["WORK"] folder to clear compile cache. Did not notice this previously.

By the way, SBFT branch is still not ready?

phi-go commented 10 months ago

Hi @am009, sorry I just saw your message. Glad you figured out the problem. We are currently doing final tests for the SBFT branch. Expect a message shortly regarding further procedure.

phi-go commented 10 months ago

Dear participants,

as already mentioned by Rahul in the Google Groups for SBFT'24, the tool reports can only be two pages long, instead of the four as mentioned in our timeline (including the references). As being over this two page limit will likely result in a rejection of your report by ACM, we wanted to also provide this information here to make sure it reaches you.

With Best Regards, Fuzzing Competition Team.