Skip to content

Error message "LLVMFuzzerTestOneInput is not defined" also when LLVMFuzzerTestOneInput is defined? #336

@practicalswift

Description

@practicalswift

Thanks a lot for writing and maintaining a very nice fuzzer!

In Bitcoin Core we encourage our users to fuzz our code using various fuzzers including the excellent Honggfuzz.

These are the quick start instructions we provide at https://github.com/bitcoin/bitcoin/blob/master/doc/fuzzing.md:

$ git clone https://github.com/bitcoin/bitcoin
$ cd bitcoin/
$ ./autogen.sh
$ git clone https://github.com/google/honggfuzz
$ cd honggfuzz/
$ make
$ cd ..
$ CC=$(pwd)/honggfuzz/hfuzz_cc/hfuzz-clang CXX=$(pwd)/honggfuzz/hfuzz_cc/hfuzz-clang++ ./configure --enable-fuzz --with-sanitizers=address,undefined --enable-c++17
$ make
$ mkdir -p inputs/
$ honggfuzz/honggfuzz -i inputs/ -- src/test/fuzz/process_message

These instructions have been working fine up until quite recently when they no longer appear to work when using a fresh honggfuzz compiled from master. (The only thing that has changed on our side is a recent switch to C++17 for the fuzzers, but I assume that is unrelated.)

The error message reported is LLVMFuzzerTestOneInput():38 Define 'int LLVMFuzzerTestOneInput(uint8_t * buf, size_t len)' in your code to make it work, but we do define LLVMFuzzerTestOneInput (and libFuzzer works as expected).

I assume our quick start instructions are incorrect in some way: are we missing something obvious here? :)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions