[all-commits] [llvm/llvm-project] b53243: [libFuzzer] Evenly select inputs to cross over wit...

Dokyung Song via All-commits all-commits at lists.llvm.org
Thu Sep 3 13:01:54 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: b53243e19496ae59ae1ce457a40e3ea610011fd1
      https://github.com/llvm/llvm-project/commit/b53243e19496ae59ae1ce457a40e3ea610011fd1
  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/FuzzerLoop.cpp
    M compiler-rt/lib/fuzzer/FuzzerOptions.h
    A compiler-rt/test/fuzzer/cross_over_uniform_dist.test

  Log Message:
  -----------
  [libFuzzer] Evenly select inputs to cross over with from the corpus regardless of the input's coverage.

This patch adds an option "cross_over_uniform_dist", which, if 1, considers all
inputs in the corpus for the crossover input selection. More specifically, this
patch uses a uniform distribution of all inputs in the corpus for the CrossOver
input selection. Note that input selection for mutation is still fully
determined by the scheduling policy (i.e., vanilla or Entropic); the uniform
distribution only applies to the secondary input selection, only for the
crossover mutation of the base input chosen by the scheduling policy. This way
the corpus inputs that have useful fragments in them, even though they are
deprioritized by the scheduling policy, have chances of getting mixed with other
inputs that are prioritized and selected as base input for mutation.

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




More information about the All-commits mailing list