| // Copyright 2017 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include <memory.h> |
| #include <stdlib.h> |
| #include <string> |
| |
| #include "third_party/minizip/src/ioapi.h" |
| #include "third_party/minizip/src/ioapi_mem.h" |
| #include "third_party/minizip/src/zip.h" |
| |
| const char kTestFileName[] = "test.zip"; |
| const zip_fileinfo kZipFileInfo = {}; |
| |
| extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { |
| zlib_filefunc_def filefunc32 = {}; |
| ourmemory_t zmem = {}; |
| zmem.grow = 1; |
| |
| fill_memory_filefunc(&filefunc32, &zmem); |
| |
| zipFile zip_file = zipOpen2(nullptr /* pathname */, APPEND_STATUS_CREATE, |
| nullptr /* global comment */, &filefunc32); |
| |
| if (zip_file) { |
| int open_result = zipOpenNewFileInZip( |
| zip_file, kTestFileName, &kZipFileInfo, nullptr /* local extra field */, |
| 0u /* local extra field size*/, nullptr /* global extra field */, |
| 0u /* global extra field size */, nullptr /* comment */, Z_DEFLATED, |
| Z_DEFAULT_COMPRESSION); |
| |
| if (open_result == ZIP_OK) { |
| zipWriteInFileInZip(zip_file, data, size); |
| zipCloseFileInZip(zip_file); |
| } |
| |
| zipClose(zip_file, nullptr /* global comment */); |
| } |
| |
| free(zmem.base); |
| |
| return 0; |
| } |