blob: c11f1023a3c4bcfd6ab1e6f7c0e73763a0823110 [file] [log] [blame]
// 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;
}