diff options
author | Kostya Serebryany <kcc@google.com> | 2016-07-19 18:29:06 +0000 |
---|---|---|
committer | Kostya Serebryany <kcc@google.com> | 2016-07-19 18:29:06 +0000 |
commit | 6b08be92791be8cf97026e472e38bbef59b5bdff (patch) | |
tree | bbecfa6ee8984414fd72a7db3240032655eb8f01 /llvm/lib/Fuzzer/test/StrstrTest.cpp | |
parent | 8b5fa7a2f20a94aae76433addffc7c3d271f6f77 (diff) | |
download | llvm-6b08be92791be8cf97026e472e38bbef59b5bdff.zip llvm-6b08be92791be8cf97026e472e38bbef59b5bdff.tar.gz llvm-6b08be92791be8cf97026e472e38bbef59b5bdff.tar.bz2 |
[libFuzzer] properly intercept memmem
llvm-svn: 276006
Diffstat (limited to 'llvm/lib/Fuzzer/test/StrstrTest.cpp')
-rw-r--r-- | llvm/lib/Fuzzer/test/StrstrTest.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/llvm/lib/Fuzzer/test/StrstrTest.cpp b/llvm/lib/Fuzzer/test/StrstrTest.cpp index 90d539b6..dd83953 100644 --- a/llvm/lib/Fuzzer/test/StrstrTest.cpp +++ b/llvm/lib/Fuzzer/test/StrstrTest.cpp @@ -9,8 +9,12 @@ #include <cstdlib> extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { + if (Size < 4) return 0; std::string s(reinterpret_cast<const char*>(Data), Size); - if (strstr(s.c_str(), "FUZZ") && strcasestr(s.c_str(), "aBcD")) { + if (strstr(s.c_str(), "FUZZ") && + strcasestr(s.c_str(), "aBcD") && + memmem(s.data(), s.size(), "kuku", 4) + ) { fprintf(stderr, "BINGO\n"); exit(1); } |