// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // Test strstr and strcasestr hooks. #include #include #include #include #include // Windows does not have strcasestr and memmem, so we are not testing them. #ifdef _WIN32 #define strcasestr strstr #define memmem(a, b, c, d) true #endif extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { if (Size < 4) return 0; std::string s(reinterpret_cast(Data), Size); if (strstr(s.c_str(), "FUZZ") && strcasestr(s.c_str(), "aBcD") && memmem(s.data(), s.size(), "kuku", 4) ) { fprintf(stderr, "BINGO\n"); exit(1); } return 0; }