diff options
| author | Peter Jones <pjones@redhat.com> | 2023-07-26 15:20:31 -0400 |
|---|---|---|
| committer | Peter Jones <pjones@redhat.com> | 2023-12-05 13:17:19 -0500 |
| commit | 8372147528d6563966c4e201ece81674a824dc58 (patch) | |
| tree | 2e7274c276864a0bf82d58faf8cfee0f85ab2404 | |
| parent | f27182695d88350b48c8b9a6dce54bb513d7aa4e (diff) | |
| download | efi-boot-shim-8372147528d6563966c4e201ece81674a824dc58.tar.gz efi-boot-shim-8372147528d6563966c4e201ece81674a824dc58.zip | |
pe-relocate: Add a fuzzer for read_header()
This adds a fuzz harness for read_header().
Signed-off-by: Peter Jones <pjones@redhat.com>
| -rw-r--r-- | fuzz-pe-relocate.c | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/fuzz-pe-relocate.c b/fuzz-pe-relocate.c new file mode 100644 index 00000000..1f62234d --- /dev/null +++ b/fuzz-pe-relocate.c @@ -0,0 +1,38 @@ +// SPDX-License-Identifier: BSD-2-Clause-Patent +/* + * fuzz-pe-relocate.c - fuzz our PE relocation code. + * Copyright Peter Jones <pjones@redhat.com> + */ + +#ifndef SHIM_UNIT_TEST +#define SHIM_UNIT_TEST +#endif +#include "shim.h" + +UINT8 mok_policy = 0; + +int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) +{ + uint8_t *data_copy; + EFI_STATUS status = 0; + size_t n = 0; + PE_COFF_LOADER_IMAGE_CONTEXT context = { 0, }; + + if (size < 1) + return 0; + + data_copy = malloc(size+1); + if (!data_copy) + return -1; + + memcpy(data_copy, data, size); + data_copy[size] = 0; + + status = read_header(data_copy, size, &context); + + free(data_copy); + + return 0; +} + +// vim:fenc=utf-8:tw=75:noet |
