1 // This file is distributed under the University of Illinois Open Source 2 // License. See LICENSE.TXT for details. 3 4 // Simple test for a fuzzer. The fuzzer must find the string "Hi!". 5 #include <cstddef> 6 #include <cstdint> 7 #include <cstdlib> 8 #include <iostream> 9 10 extern "C" { 11 __attribute__((noinline)) 12 void FunctionC(const uint8_t *Data, size_t Size) { 13 if (Size > 3 && Data[3] == 'Z') { 14 static bool PrintedOnce = false; 15 if (!PrintedOnce) { 16 std::cout << "BINGO\n"; 17 PrintedOnce = true; 18 } 19 } 20 } 21 22 __attribute__((noinline)) 23 void FunctionB(const uint8_t *Data, size_t Size) { 24 if (Size > 2 && Data[2] == 'Z') 25 FunctionC(Data, Size); 26 } 27 __attribute__((noinline)) 28 void FunctionA(const uint8_t *Data, size_t Size) { 29 if (Size > 1 && Data[1] == 'U') 30 FunctionB(Data, Size); 31 } 32 } 33 34 extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { 35 if (Size > 0 && Data[0] == 'F') 36 FunctionA(Data, Size); 37 return 0; 38 } 39 40