Index: compiler-rt/test/fuzzer/InitializeTest.cpp =================================================================== --- compiler-rt/test/fuzzer/InitializeTest.cpp +++ compiler-rt/test/fuzzer/InitializeTest.cpp @@ -9,19 +9,22 @@ #include #include +// Set an arbitrary max length to make things easier for libFuzzer. +static const size_t kMaxLen = 50; static char *argv0; +static size_t argv0_len; extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv) { assert(*argc > 0); argv0 = **argv; + argv0_len = strlen(argv0) >= kMaxLen ? kMaxLen : strlen(argv0); fprintf(stderr, "LLVMFuzzerInitialize: %s\n", argv0); return 0; } extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { assert(argv0); - if (Size == strlen(argv0) && - !memmem(Data, Size, argv0, Size)) { + if (Size == argv0_len && !memcmp(Data, argv0, Size)) { fprintf(stderr, "BINGO %s\n", argv0); exit(1); } Index: compiler-rt/test/fuzzer/initialize.test =================================================================== --- compiler-rt/test/fuzzer/initialize.test +++ compiler-rt/test/fuzzer/initialize.test @@ -1,4 +1,4 @@ -# FIXME: Disabled on Windows because memmem is a GNU extension. +# FIXME: Disabled on Windows since LLVMFuzzerInitialize does not yet work. UNSUPPORTED: windows CHECK: BINGO RUN: %cpp_compiler %S/InitializeTest.cpp -o %t-InitializeTest