1// 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
4
5#include <cstdint>
6#include <cstdio>
7#include <cstdlib>
8#include <cstring>
9
10extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
11 int Matches1 = 0;
12 for (size_t i = 0; i + 2 < Size; i += 3)
13 if (!memcmp(s1: Data + i, s2: "foo", n: 3))
14 Matches1++;
15 int Matches2 = 0;
16 for (size_t i = 0; i + 2 < Size; i += 3)
17 if (!memcmp(s1: Data + i, s2: "bar", n: 3))
18 Matches2++;
19
20 if (Matches1 > 10 && Matches2 > 10) {
21 fprintf(stderr, format: "BINGO!\n");
22 exit(status: 1);
23 }
24 return 0;
25}
26

source code of compiler-rt/test/fuzzer/RepeatedMemcmp.cpp