// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // Simple test for a fuzzer. The fuzzer must find the interesting switch value. #include #include #include #include #include int Switch(int a) { switch(a) { case 100001: return 1; case 100002: return 2; case 100003: return 4; } return 0; } extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { const int N = 3; if (Size < N * sizeof(int)) return 0; int Res = 0; for (int i = 0; i < N; i++) { int X; memcpy(&X, Data + i * sizeof(int), sizeof(int)); Res += Switch(X); } if (Res == 5 || Res == 3 || Res == 6 || Res == 7) { fprintf(stderr, "BINGO; Found the target, exiting; Res=%d\n", Res); exit(1); } return 0; }