Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: rust-fuzz/libfuzzer
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 0.4.4
Choose a base ref
...
head repository: rust-fuzz/libfuzzer
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 0.4.5
Choose a head ref
  • 8 commits
  • 3 files changed
  • 3 contributors

Commits on Sep 6, 2022

  1. Force at least one unique stack frame per fuzzer

    This change is an attempt to address the behavior found at
    google/oss-fuzz#8389 where two distinct bugs were accidentally
    deduplicated into the same bug report. One of the reasons for this is
    that the stack traces between the two bugs were almost the same with
    only very minor differences. My hope is that by forcing a unique stack
    frame per fuzzer this will be less likely since there is guaranteed to
    be at least one stack frame per fuzz target which is unique with this
    change.
    
    While I was here I wrapped up the generated function by the
    `fuzz_target!` macro in a `const _: () = { ... }` to avoid adding this
    new `run` function in to the normal module's namespace and accidentally
    causing name collisions (e.g. if fuzz targets already have functions
    named `run`)
    alexcrichton committed Sep 6, 2022
    Configuration menu
    Copy the full SHA
    63b9226 View commit details
    Browse the repository at this point in the history
  2. Merge pull request #95 from alexcrichton/add-inline-never-frame

    Force at least one unique stack frame per fuzzer
    fitzgen authored Sep 6, 2022
    Configuration menu
    Copy the full SHA
    64ad66a View commit details
    Browse the repository at this point in the history

Commits on Oct 1, 2022

  1. Enable keep/reject inputs from the corpus

    This allows the fuzz target to indiciate whether an input was useful
    for the fuzz testing by returning Corpus::Keep or Corpus::Reject.
    Backwards compatibility is preserved by coercing the unit type () to
    Corpus::Keep.
    
    This maps to 0 (Keep) and -1 (Reject) in the libFuzzer API:
    https://llvm.org/docs/LibFuzzer.html#rejecting-unwanted-inputs
    dacut committed Oct 1, 2022
    Configuration menu
    Copy the full SHA
    dfe756f View commit details
    Browse the repository at this point in the history

Commits on Oct 17, 2022

  1. Add changes suggested from code review.

    Docs: make it explicit that we're ignoring the return value of the
    function under test. Add comments from libfuzzer explaining why one
    might want to keep inputs out of the corpus.
    
    Convert From<Corpus> to i32 to a pub fn to_libfuzzer_code() that is
    impl on Corpus to avoid accidental conversion.
    dacut committed Oct 17, 2022
    Configuration menu
    Copy the full SHA
    028f4e1 View commit details
    Browse the repository at this point in the history
  2. Fix missing return branch.

    Fix doc tests.
    dacut committed Oct 17, 2022
    Configuration menu
    Copy the full SHA
    7ae224a View commit details
    Browse the repository at this point in the history

Commits on Oct 18, 2022

  1. Remove trailing whitespace

    fitzgen authored Oct 18, 2022
    Configuration menu
    Copy the full SHA
    1a0499e View commit details
    Browse the repository at this point in the history
  2. Merge pull request #97 from dacut/corpus

    Enable keep/reject inputs from the corpus
    fitzgen authored Oct 18, 2022
    Configuration menu
    Copy the full SHA
    393082d View commit details
    Browse the repository at this point in the history
  3. Bump to version 0.4.5

    fitzgen committed Oct 18, 2022
    Configuration menu
    Copy the full SHA
    396dc4c View commit details
    Browse the repository at this point in the history
Loading