blob: 32a5578710008e1d8d97dfa2df4f245bb8711091 [file] [log] [blame]
Kostya Serebryanyf7798522016-06-09 01:20:35 +00001// This file is distributed under the University of Illinois Open Source
2// License. See LICENSE.TXT for details.
3
4// Tests OOM handling when there is a single large allocation.
5#include <assert.h>
Chandler Carruth6bda14b2017-06-06 11:49:48 +00006#include <cstddef>
Kostya Serebryanyf7798522016-06-09 01:20:35 +00007#include <cstdint>
8#include <cstdlib>
Kostya Serebryanyf7798522016-06-09 01:20:35 +00009#include <cstring>
10#include <iostream>
Kostya Serebryanyf7798522016-06-09 01:20:35 +000011
12static volatile char *SinkPtr;
13
14extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
15 if (Size > 0 && Data[0] == 'H') {
16 if (Size > 1 && Data[1] == 'i') {
17 if (Size > 2 && Data[2] == '!') {
18 size_t kSize = (size_t)1 << 31;
19 char *p = new char[kSize];
20 memset(p, 0, kSize);
21 SinkPtr = p;
22 delete [] p;
23 }
24 }
25 }
26 return 0;
27}
28