1*5c90c05cSAndroid Build Coastguard Worker #include <cassert> 2*5c90c05cSAndroid Build Coastguard Worker #include <fstream> 3*5c90c05cSAndroid Build Coastguard Worker #include <vector> 4*5c90c05cSAndroid Build Coastguard Worker 5*5c90c05cSAndroid Build Coastguard Worker #include "fuzzer-common.h" 6*5c90c05cSAndroid Build Coastguard Worker 7*5c90c05cSAndroid Build Coastguard Worker extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size); 8*5c90c05cSAndroid Build Coastguard Worker main(int argc,char ** argv)9*5c90c05cSAndroid Build Coastguard Workerint main(int argc, char** argv) { 10*5c90c05cSAndroid Build Coastguard Worker for (int i = 1; i < argc; ++i) { 11*5c90c05cSAndroid Build Coastguard Worker std::ifstream in(argv[i]); 12*5c90c05cSAndroid Build Coastguard Worker assert(in); 13*5c90c05cSAndroid Build Coastguard Worker in.seekg(0, std::ios_base::end); 14*5c90c05cSAndroid Build Coastguard Worker const auto size = in.tellg(); 15*5c90c05cSAndroid Build Coastguard Worker assert(size >= 0); 16*5c90c05cSAndroid Build Coastguard Worker in.seekg(0, std::ios_base::beg); 17*5c90c05cSAndroid Build Coastguard Worker std::vector<char> buf(static_cast<size_t>(size)); 18*5c90c05cSAndroid Build Coastguard Worker in.read(buf.data(), size); 19*5c90c05cSAndroid Build Coastguard Worker assert(in.gcount() == size); 20*5c90c05cSAndroid Build Coastguard Worker LLVMFuzzerTestOneInput(as_bytes(buf.data()), buf.size()); 21*5c90c05cSAndroid Build Coastguard Worker } 22*5c90c05cSAndroid Build Coastguard Worker } 23