1*9880d681SAndroid Build Coastguard Worker // This file is distributed under the University of Illinois Open Source 2*9880d681SAndroid Build Coastguard Worker // License. See LICENSE.TXT for details. 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Worker 5*9880d681SAndroid Build Coastguard Worker #include <cstring> 6*9880d681SAndroid Build Coastguard Worker #include <cstdint> 7*9880d681SAndroid Build Coastguard Worker #include <cstdio> 8*9880d681SAndroid Build Coastguard Worker #include <cstdlib> 9*9880d681SAndroid Build Coastguard Worker LLVMFuzzerTestOneInput(const uint8_t * Data,size_t Size)10*9880d681SAndroid Build Coastguard Workerextern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { 11*9880d681SAndroid Build Coastguard Worker int Matches = 0; 12*9880d681SAndroid Build Coastguard Worker for (size_t i = 0; i + 2 < Size; i += 3) { 13*9880d681SAndroid Build Coastguard Worker const char *Pat = i % 2 ? "foo" : "bar"; 14*9880d681SAndroid Build Coastguard Worker if (!memcmp(Data + i, Pat, 3)) 15*9880d681SAndroid Build Coastguard Worker Matches++; 16*9880d681SAndroid Build Coastguard Worker } 17*9880d681SAndroid Build Coastguard Worker if (Matches > 20) { 18*9880d681SAndroid Build Coastguard Worker fprintf(stderr, "BINGO!\n"); 19*9880d681SAndroid Build Coastguard Worker exit(1); 20*9880d681SAndroid Build Coastguard Worker } 21*9880d681SAndroid Build Coastguard Worker return 0; 22*9880d681SAndroid Build Coastguard Worker } 23