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

Shared execution for profile-split protobuf targets. More...

Go to the source code of this file.

Functions

std::size_t LLVMFuzzerCustomMutator (std::uint8_t *data, std::size_t size, std::size_t max_size, unsigned int seed)
 Invoke this target's libFuzzer mutator from coverage-only corpus replay.
std::size_t LLVMFuzzerCustomCrossOver (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)
 Invoke this target's libFuzzer crossover from coverage-only corpus replay.
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.
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.

Detailed Description

Shared execution for profile-split protobuf targets.

Definition in file fuzzer_main.cc.

Function Documentation

◆ LLVMFuzzerCustomCrossOver()

std::size_t LLVMFuzzerCustomCrossOver ( 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 )

Invoke this target's libFuzzer crossover from coverage-only corpus replay.

Parameters
data1Serialized first parent message.
size1Number of bytes in data1.
data2Serialized second parent message.
size2Number of bytes in data2.
outDestination buffer for the child message.
max_out_sizeCapacity of out.
seedDeterministic crossover seed.
Returns
Number of serialized bytes written to out.

◆ LLVMFuzzerCustomMutator()

std::size_t LLVMFuzzerCustomMutator ( std::uint8_t * data,
std::size_t size,
std::size_t max_size,
unsigned int seed )

Invoke this target's libFuzzer mutator from coverage-only corpus replay.

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.
Returns
Number of serialized bytes in the mutated message.

◆ 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.