curl-fuzzer C++ reference
Loading...
Searching...
No Matches
fuzzer_main.h File Reference

Shared byte-to-protobuf dispatch for the policy-split fuzzers. More...

Go to the source code of this file.

Functions

int proto_fuzzer::ProtoFuzzerTestOneInput (const std::uint8_t *data, std::size_t size, const ProfileFuzzerTraits &traits)
 Load and execute one generated-profile input under its fixed target lane.
std::size_t proto_fuzzer::ProtoFuzzerCustomMutator (std::uint8_t *data, std::size_t size, std::size_t max_size, unsigned int seed, const ProfileFuzzerTraits &traits)
 Mutate one serialized generated profile message.
std::size_t proto_fuzzer::ProtoFuzzerCustomCrossOver (const std::uint8_t *data1, std::size_t size1, const std::uint8_t *data2, std::size_t size2, std::uint8_t *out, std::size_t max_out_size, unsigned int seed, const ProfileFuzzerTraits &traits)
 Cross two serialized generated profile messages of the same concrete type.

Detailed Description

Shared byte-to-protobuf dispatch for the policy-split fuzzers.

Definition in file fuzzer_main.h.

Function Documentation

◆ ProtoFuzzerCustomCrossOver()

std::size_t proto_fuzzer::ProtoFuzzerCustomCrossOver ( const std::uint8_t * data1,
std::size_t size1,
const std::uint8_t * data2,
std::size_t size2,
std::uint8_t * out,
std::size_t max_out_size,
unsigned int seed,
const ProfileFuzzerTraits & traits )

Cross two serialized generated profile messages of the same concrete type.

Parameters
data1Serialized first parent message.
size1Number of bytes in data1.
data2Serialized second parent message.
size2Number of bytes in data2.
outDestination buffer for the crossed message.
max_out_sizeCapacity of out.
seedDeterministic crossover seed supplied by libFuzzer.
traitsGenerated profile binding for this executable.
Returns
Number of serialized bytes written to out.

Definition at line 109 of file fuzzer_main.cc.

◆ ProtoFuzzerCustomMutator()

std::size_t proto_fuzzer::ProtoFuzzerCustomMutator ( std::uint8_t * data,
std::size_t size,
std::size_t max_size,
unsigned int seed,
const ProfileFuzzerTraits & traits )

Mutate one serialized generated profile message.

Parameters
dataSerialized profile message buffer to mutate in place.
sizeNumber of input bytes currently stored in data.
max_sizeCapacity of data available for the mutated message.
seedDeterministic mutation seed supplied by libFuzzer.
traitsGenerated profile binding for this executable.
Returns
Number of serialized bytes in the mutated message.

Definition at line 90 of file fuzzer_main.cc.

◆ ProtoFuzzerTestOneInput()

int proto_fuzzer::ProtoFuzzerTestOneInput ( const std::uint8_t * data,
std::size_t size,
const ProfileFuzzerTraits & traits )

Load and execute one generated-profile input under its fixed target lane.

Parameters
dataSerialized generated-profile input bytes.
sizeNumber of bytes available at data.
traitsGenerated profile binding selected by the entrypoint.
Returns
Always zero, as required by the libFuzzer entrypoint contract.

Definition at line 124 of file fuzzer_main.cc.