blob: 68249ca73f93f5af520a673a908a813f267807e4 [file] [log] [blame]
/*
* 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 <stddef.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
int LLVMFuzzerTestOneInput(const uint8_t*, size_t);
int main(int argc, char** argv) {
if (argc != 2) {
printf("usage: %s <ICC filename>\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);
}