[all-commits] [llvm/llvm-project] 62673c: [libFuzzer] Add an option to keep initial seed inp...

Dokyung Song via All-commits all-commits at lists.llvm.org
Thu Sep 3 08:55:06 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 62673c430de43837b0f177089ed184a0ffcd5678
      https://github.com/llvm/llvm-project/commit/62673c430de43837b0f177089ed184a0ffcd5678
  Author: Dokyung Song <dokyungs at google.com>
  Date:   2020-09-03 (Thu, 03 Sep 2020)

  Changed paths:
    M compiler-rt/lib/fuzzer/FuzzerCorpus.h
    M compiler-rt/lib/fuzzer/FuzzerDriver.cpp
    M compiler-rt/lib/fuzzer/FuzzerFlags.def
    M compiler-rt/lib/fuzzer/FuzzerFork.cpp
    M compiler-rt/lib/fuzzer/FuzzerInternal.h
    M compiler-rt/lib/fuzzer/FuzzerLoop.cpp
    M compiler-rt/lib/fuzzer/FuzzerOptions.h
    M compiler-rt/lib/fuzzer/tests/FuzzerUnittest.cpp
    A compiler-rt/test/fuzzer/KeepSeedTest.cpp
    A compiler-rt/test/fuzzer/keep-seed.test

  Log Message:
  -----------
  [libFuzzer] Add an option to keep initial seed inputs around.

This patch adds an option "keep_seed" to keep all initial seed inputs in the
corpus. Previously, only the initial seed inputs that find new coverage were
added to the corpus, and all the other initial inputs were discarded. We
observed in some circumstances that useful initial seed inputs are discarded as
they find no new coverage, even though they contain useful fragments in them
(e.g., SQLITE3 FuzzBench benchmark). This newly added option provides a way to
keeping seed inputs in the corpus for those circumstances. With this patch, and
with -keep_seed=1, all initial seed inputs are kept in the corpus regardless of
whether they find new coverage or not. Further, these seed inputs are not
replaced with smaller inputs even if -reduce_inputs=1.

Differential Revision: https://reviews.llvm.org/D86577




More information about the All-commits mailing list