sandbox: Add libfuzzer integration

Add an implementation of LLVMFuzzerTestOneInput() that starts the
sandbox on a secondary thread and exposes a function to synchronize the
generation of fuzzing inputs with their consumption by the sandbox.

Signed-off-by: Andrew Scull <ascull@google.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Andrew Scull 2022-05-30 10:00:11 +00:00 committed by Tom Rini
parent 001c39a196
commit d9962b12f2
3 changed files with 98 additions and 0 deletions

View file

@ -0,0 +1,25 @@
/* SPDX-License-Identifier: GPL-2.0+ */
/*
* Copyright (c) 2022 Google, Inc.
* Written by Andrew Scull <ascull@google.com>
*/
#ifndef __ASM_FUZZING_ENGINE_H
#define __ASM_FUZZING_ENGINE_H
/** Function to get fuzzing engine input data. */
/**
* sandbox_fuzzing_engine_get_input() - get an input from the sandbox fuzzing
* engine
*
* The function will return a pointer to the input data and the size of the
* data pointed to. The pointer will remain valid until the next invocation of
* this function.
*
* @data: output pointer to input data
* @size output size of input data
* Return: 0 if OK, -ve on error
*/
int sandbox_fuzzing_engine_get_input(const uint8_t **data, size_t *size);
#endif /* __ASM_FUZZING_ENGINE_H */