#include "chewing_fuzzer_common.h" #include #include #include #include static char userphrase_path[] = "/tmp/chewing_userphrase.db.XXXXXX"; int LLVMFuzzerInitialize(int* argc, char*** argv) { char* exe_path = (*argv)[0]; // dirname() can modify its argument. char* exe_path_copy = strdup(exe_path); char* dir = dirname(exe_path_copy); // Assume data files are at the same location as executable. setenv("CHEWING_PATH", dir, 0); free(exe_path_copy); // Specify user db of this process. So we can run multiple fuzzers at the // same time. mktemp(userphrase_path); setenv("TEST_USERPHRASE_PATH", userphrase_path, 0); return 0; } int get_fuzz_input() { if (fuzz_ptr - fuzz_input >= fuzz_size) return EOF; return *fuzz_ptr++; }