OLD | NEW |
1 // Copyright (c) 2015 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <stdint.h> | 5 #include <stdint.h> |
| 6 #include <string.h> |
6 | 7 |
7 #include "third_party/zlib/zlib.h" | 8 #include "third_party/zlib/zlib.h" |
8 | 9 |
9 // Entry point for LibFuzzer. | 10 // Entry point for LibFuzzer. |
10 extern "C" int LLVMFuzzerTestOneInput(const unsigned char *data, size_t size) { | 11 extern "C" int LLVMFuzzerTestOneInput(const unsigned char *data, size_t size) { |
11 uint8_t buffer[1024 * 1024] = { 0 }; | 12 const int NUM_ITEMS = 1024 * 1024; |
12 size_t buffer_length = sizeof(buffer); | 13 const int BUF_SIZE = NUM_ITEMS * sizeof(uint8_t); |
13 if (Z_OK != uncompress(buffer, &buffer_length, data, size)) { | 14 uint8_t *buffer = new uint8_t[NUM_ITEMS]; |
| 15 uLongf buffer_length = (uLongf)BUF_SIZE; |
| 16 memset(buffer, 0, BUF_SIZE); |
| 17 |
| 18 if (Z_OK != uncompress(buffer, &buffer_length, data, size)) { |
| 19 delete[] buffer; |
| 20 return 0; |
| 21 } |
| 22 delete[] buffer; |
14 return 0; | 23 return 0; |
15 } | |
16 | |
17 return 0; | |
18 } | 24 } |
OLD | NEW |