/* * Copyright 2018 Google Inc. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ // This main() can be used to run libfuzzer targets as standalone binaries. #ifdef _MSC_VER #define _CRT_SECURE_NO_WARNINGS #endif #include #include #include #include int LLVMFuzzerTestOneInput(const uint8_t*, size_t); int main(int argc, char** argv) { if (argc != 2) { printf("usage: %s \n", argv[0]); return 1; } FILE* fp = fopen(argv[1], "rb"); if (!fp) { printf("Unable to open input file"); return 1; } fseek(fp, 0L, SEEK_END); long slen = ftell(fp); if (slen <= 0) { printf("ftell failed"); return 1; } size_t len = (size_t)slen; rewind(fp); void* data = malloc(len); if (!data) { return 1; } size_t size = fread(data, 1, len, fp); fclose(fp); if (size != len) { printf("Unable to read file"); return 1; } return LLVMFuzzerTestOneInput(data, size); }