| #include <iostream> |
| #include "flatbuffers/util.h" |
| |
| extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size); |
| |
| int main(int argc, char *argv[]) { |
| if (argc < 2) { |
| std::cerr << "Usage: scalar_debug <path to fuzzer crash file>\n"; |
| return 0; |
| } |
| std::string crash_file_name(argv[1]); |
| std::string crash_file_data; |
| auto done = |
| flatbuffers::LoadFile(crash_file_name.c_str(), true, &crash_file_data); |
| if (!done) { |
| std::cerr << "Can not load file: '" << crash_file_name << "'"; |
| return -1; |
| } |
| if (crash_file_data.size() < 3) { |
| std::cerr << "Invalid file data: '" << crash_file_data << "'"; |
| return -2; |
| } |
| auto rc = LLVMFuzzerTestOneInput( |
| reinterpret_cast<const uint8_t *>(crash_file_data.data()), |
| crash_file_data.size()); |
| std::cout << "LLVMFuzzerTestOneInput finished with code " << rc << "\n\n"; |
| return rc; |
| } |