blob: ba2b068f741d445c228065b70c9bba76a4437b5d [file] [log] [blame]
Kostya Serebryanyc58982d2017-03-24 22:19:52 +00001// This file is distributed under the University of Illinois Open Source
2// License. See LICENSE.TXT for details.
3
4// Test that we don't creash in case of bad strcmp params.
Chandler Carruth6bda14b2017-06-06 11:49:48 +00005#include <cstddef>
Kostya Serebryanyc58982d2017-03-24 22:19:52 +00006#include <cstdint>
7#include <cstring>
Kostya Serebryanyc58982d2017-03-24 22:19:52 +00008
9static volatile int Sink;
10
11extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
12 if (Size != 10) return 0;
13 // Data is not zero-terminated, so this call is bad.
14 // Still, there are cases when such calles appear, see e.g.
15 // https://bugs.llvm.org/show_bug.cgi?id=32357
16 Sink = strcmp(reinterpret_cast<const char*>(Data), "123456789");
17 return 0;
18}
19