Embedded SDK
Embedded SDK
Loading...
Searching...
No Matches
fuzz_mutator.h
Go to the documentation of this file.
1#pragma once
26#include <stddef.h>
27#include <stdint.h>
28#include <string.h>
29#include "fuzz_defs.h"
30
31extern size_t LLVMFuzzerMutate(uint8_t *data, size_t size, size_t max_size);
32
34size_t fuzz_prefix_size(void);
35
37size_t fuzz_custom_mutator(uint8_t *data, size_t size, size_t max_size, unsigned int seed);
38
40typedef size_t (*fuzz_input_mutator_fn)(uint8_t *input,
41 size_t size,
42 size_t max_size,
43 unsigned int seed);
44
52size_t fuzz_mutate_input_with(uint8_t *data,
53 size_t size,
54 size_t max_size,
55 unsigned int seed,
56 fuzz_input_mutator_fn mutate_input);
Shared constants, the input layout, and the command descriptor type for SDK fuzz harnesses.
size_t(* fuzz_input_mutator_fn)(uint8_t *input, size_t size, size_t max_size, unsigned int seed)
Mutates a harness input in place, returning its new size.
size_t fuzz_mutate_input_with(uint8_t *data, size_t size, size_t max_size, unsigned int seed, fuzz_input_mutator_fn mutate_input)
Run a grammar-aware mutator over the harness input only, leaving the sampled prefix untouched.
size_t fuzz_prefix_size(void)
Where Absolution's sampled state ends (see cmake/EmitPrefixSize.cmake).
size_t fuzz_custom_mutator(uint8_t *data, size_t size, size_t max_size, unsigned int seed)
The framework's LLVMFuzzerCustomMutator() body.
size_t LLVMFuzzerMutate(uint8_t *data, size_t size, size_t max_size)