blob: 4d4c0b59960d3a2586aa23df9a58b3d09f903a75 [file] [log] [blame]
Chandler Carruth2946cd72019-01-19 08:50:56 +00001// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
2// See https://llvm.org/LICENSE.txt for license information.
3// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
George Karpenkov10ab2ac2017-08-21 23:25:50 +00004
Kostya Serebryany51ddb882018-07-03 22:33:09 +00005// Test that we can find the minimal item in the corpus (4 bytes: "FUZZ").
George Karpenkov10ab2ac2017-08-21 23:25:50 +00006#include <cstddef>
7#include <cstdint>
8#include <cstdio>
9#include <cstdlib>
10#include <cstring>
11
12static volatile uint32_t Sink;
13
14extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
15 if (Size < sizeof(uint32_t)) return 0;
16 uint32_t X, Y;
17 size_t Offset = Size < 8 ? 0 : Size / 2;
18 memcpy(&X, Data + Offset, sizeof(uint32_t));
19 memcpy(&Y, "FUZZ", sizeof(uint32_t));
20 Sink = X == Y;
21 return 0;
22}
23