Skip to content

Commit 47fd29a

Browse files
committed
lib: miniz: upgrade to ca0cdfc5
Signed-off-by: Eduardo Silva <eduardo@calyptia.com>
1 parent 74a2894 commit 47fd29a

18 files changed

+8643
-7947
lines changed

lib/miniz/CMakeLists.txt

Lines changed: 302 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,304 @@
1-
set(src
2-
miniz.c
1+
cmake_minimum_required(VERSION 3.0)
2+
3+
# determine whether this is a standalone project or included by other projects
4+
set (MINIZ_STANDALONE_PROJECT ON)
5+
if(DEFINED PROJECT_NAME)
6+
set(MINIZ_STANDALONE_PROJECT OFF)
7+
endif()
8+
9+
if(CMAKE_MINOR_VERSION LESS 12)
10+
project(miniz)
11+
# see issue https://gitlab.kitware.com/cmake/cmake/merge_requests/1799
12+
else()
13+
project(miniz C)
14+
set(CMAKE_C_STANDARD 90)
15+
set(CMAKE_VERBOSE_MAKEFILE ON)
16+
# set(CMAKE_C_VISIBILITY_PRESET hidden)
17+
# set(CMAKE_VISIBILITY_INLINES_HIDDEN YES)
18+
19+
if (MSVC)
20+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W3 /Zi /permissive-")
21+
else ()
22+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wshadow -Wformat=2 -Wall -Wno-overlength-strings -pedantic")
23+
endif ()
24+
endif()
25+
26+
set(MINIZ_API_VERSION 3)
27+
set(MINIZ_MINOR_VERSION 0)
28+
set(MINIZ_PATCH_VERSION 0)
29+
set(MINIZ_VERSION
30+
${MINIZ_API_VERSION}.${MINIZ_MINOR_VERSION}.${MINIZ_PATCH_VERSION})
31+
32+
if(CMAKE_BUILD_TYPE STREQUAL "")
33+
# CMake defaults to leaving CMAKE_BUILD_TYPE empty. This screws up
34+
# differentiation between debug and release builds.
35+
set(CMAKE_BUILD_TYPE "Release" CACHE STRING
36+
"Choose the type of build, options are: None (CMAKE_CXX_FLAGS or \
37+
CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel." FORCE)
38+
endif ()
39+
40+
option(BUILD_EXAMPLES "Build examples" ${MINIZ_STANDALONE_PROJECT})
41+
option(BUILD_FUZZERS "Build fuzz targets" OFF)
42+
option(AMALGAMATE_SOURCES "Amalgamate sources into miniz.h/c" OFF)
43+
option(BUILD_HEADER_ONLY "Build a header-only version" OFF)
44+
option(BUILD_SHARED_LIBS "Build shared library instead of static" OFF)
45+
option(INSTALL_PROJECT "Install project" ${MINIZ_STANDALONE_PROJECT})
46+
47+
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/bin)
48+
49+
if(INSTALL_PROJECT)
50+
include(GNUInstallDirs)
51+
endif()
52+
53+
if(BUILD_HEADER_ONLY)
54+
set(AMALGAMATE_SOURCES ON CACHE BOOL "Build a header-only version" FORCE)
55+
endif(BUILD_HEADER_ONLY)
56+
57+
if(AMALGAMATE_SOURCES)
58+
# Amalgamate
59+
file(COPY miniz.h DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/amalgamation/)
60+
file(READ miniz.h MINIZ_H)
61+
file(READ miniz_common.h MINIZ_COMMON_H)
62+
file(READ miniz_tdef.h MINIZ_TDEF_H)
63+
file(READ miniz_tinfl.h MINIZ_TINFL_H)
64+
file(READ miniz_zip.h MINIZ_ZIP_H)
65+
file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/amalgamation/miniz.h
66+
"${MINIZ_COMMON_H} ${MINIZ_TDEF_H} ${MINIZ_TINFL_H} ${MINIZ_ZIP_H}")
67+
68+
file(COPY miniz.c DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/amalgamation/)
69+
file(READ miniz_tdef.c MINIZ_TDEF_C)
70+
file(READ miniz_tinfl.c MINIZ_TINFL_C)
71+
file(READ miniz_zip.c MINIZ_ZIP_C)
72+
file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/amalgamation/miniz.c
73+
"${MINIZ_TDEF_C} ${MINIZ_TINFL_C} ${MINIZ_ZIP_C}")
74+
75+
file(READ ${CMAKE_CURRENT_BINARY_DIR}/amalgamation/miniz.h AMAL_MINIZ_H)
76+
file(READ ${CMAKE_CURRENT_BINARY_DIR}/amalgamation/miniz.c AMAL_MINIZ_C)
77+
foreach(REPLACE_STRING miniz;miniz_common;miniz_tdef;miniz_tinfl;miniz_zip;miniz_export)
78+
string(REPLACE "#include \"${REPLACE_STRING}.h\"" "" AMAL_MINIZ_H "${AMAL_MINIZ_H}")
79+
string(REPLACE "#include \"${REPLACE_STRING}.h\"" "" AMAL_MINIZ_C "${AMAL_MINIZ_C}")
80+
endforeach()
81+
string(CONCAT AMAL_MINIZ_H "#ifndef MINIZ_EXPORT\n#define MINIZ_EXPORT\n#endif\n" "${AMAL_MINIZ_H}")
82+
if(BUILD_HEADER_ONLY)
83+
string(CONCAT AMAL_MINIZ_H "${AMAL_MINIZ_H}" "\n#ifndef MINIZ_HEADER_FILE_ONLY\n"
84+
"${AMAL_MINIZ_C}" "\n#endif // MINIZ_HEADER_FILE_ONLY\n")
85+
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/amalgamation/miniz.h "${AMAL_MINIZ_H}")
86+
add_library(${PROJECT_NAME} INTERFACE)
87+
88+
# Might not be a good idea to force this on the library user
89+
# as it could bloat the global namespace
90+
# https://github.com/libevent/libevent/issues/460
91+
# target_compile_definitions(${PROJECT_NAME}
92+
# INTERFACE $<$<C_COMPILER_ID:GNU>:_GNU_SOURCE>)
93+
94+
set_property(TARGET ${PROJECT_NAME} APPEND
95+
PROPERTY INTERFACE_INCLUDE_DIRECTORIES
96+
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/amalgamation>
97+
$<INSTALL_INTERFACE:include>
98+
)
99+
else(BUILD_HEADER_ONLY)
100+
string(CONCAT AMAL_MINIZ_C "#include \"miniz.h\"\n" "${AMAL_MINIZ_C}")
101+
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/amalgamation/miniz.h "${AMAL_MINIZ_H}")
102+
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/amalgamation/miniz.c "${AMAL_MINIZ_C}")
103+
set(miniz_SOURCE ${CMAKE_CURRENT_BINARY_DIR}/amalgamation/miniz.h
104+
${CMAKE_CURRENT_BINARY_DIR}/amalgamation/miniz.c)
105+
add_library(${PROJECT_NAME} STATIC ${miniz_SOURCE})
106+
target_include_directories(${PROJECT_NAME} PUBLIC
107+
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/amalgamation>
108+
$<INSTALL_INTERFACE:include>
109+
)
110+
endif(BUILD_HEADER_ONLY)
111+
112+
set(INSTALL_HEADERS ${CMAKE_CURRENT_BINARY_DIR}/amalgamation/miniz.h)
113+
114+
file(GLOB_RECURSE ZIP_FILES RELATIVE "${CMAKE_CURRENT_BINARY_DIR}/amalgamation" "${CMAKE_CURRENT_BINARY_DIR}/amalgamation/*")
115+
file(GLOB_RECURSE ZIP_FILES2 RELATIVE "${CMAKE_SOURCE_DIR}" "${CMAKE_SOURCE_DIR}/examples/*")
116+
list(APPEND ZIP_FILES ${ZIP_FILES2})
117+
list(APPEND ZIP_FILES "ChangeLog.md")
118+
list(APPEND ZIP_FILES "readme.md")
119+
list(APPEND ZIP_FILES "LICENSE")
120+
set(ZIP_OUT_FN "${CMAKE_CURRENT_BINARY_DIR}/miniz-${MINIZ_VERSION}.zip")
121+
message(STATUS "Zip files: ${ZIP_FILES}")
122+
add_custom_command(
123+
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/examples ${CMAKE_CURRENT_BINARY_DIR}/amalgamation/examples
124+
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/ChangeLog.md ${CMAKE_CURRENT_BINARY_DIR}/amalgamation/ChangeLog.md
125+
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/readme.md ${CMAKE_CURRENT_BINARY_DIR}/amalgamation/readme.md
126+
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/LICENSE ${CMAKE_CURRENT_BINARY_DIR}/amalgamation/LICENSE
127+
COMMAND ${CMAKE_COMMAND} -E tar "cf" "${ZIP_OUT_FN}" --format=zip -- ${ZIP_FILES}
128+
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/amalgamation"
129+
OUTPUT "${ZIP_OUT_FN}"
130+
DEPENDS ${ZIP_FILES}
131+
COMMENT "Zipping to ${CMAKE_CURRENT_BINARY_DIR}/miniz.zip."
132+
)
133+
134+
add_custom_target(
135+
create_zip ALL
136+
DEPENDS "${ZIP_OUT_FN}"
137+
)
138+
else(AMALGAMATE_SOURCES)
139+
include(GenerateExportHeader)
140+
set(miniz_SOURCE miniz.c miniz_zip.c miniz_tinfl.c miniz_tdef.c)
141+
add_library(${PROJECT_NAME} ${miniz_SOURCE})
142+
generate_export_header(${PROJECT_NAME})
143+
144+
if(NOT BUILD_SHARED_LIBS)
145+
string(TOUPPER ${PROJECT_NAME} PROJECT_UPPER)
146+
set_target_properties(${PROJECT_NAME}
147+
PROPERTIES INTERFACE_COMPILE_DEFINITIONS ${PROJECT_UPPER}_STATIC_DEFINE)
148+
else()
149+
set_property(TARGET ${PROJECT_NAME} PROPERTY C_VISIBILITY_PRESET hidden)
150+
endif()
151+
152+
set_property(TARGET ${PROJECT_NAME} PROPERTY VERSION ${MINIZ_VERSION})
153+
set_property(TARGET ${PROJECT_NAME} PROPERTY SOVERSION ${MINIZ_API_VERSION})
154+
155+
target_include_directories(${PROJECT_NAME} PUBLIC
156+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
157+
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>
158+
$<INSTALL_INTERFACE:include>
159+
)
160+
161+
file(GLOB INSTALL_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/*.h)
162+
list(APPEND
163+
INSTALL_HEADERS ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}_export.h)
164+
endif(AMALGAMATE_SOURCES)
165+
166+
if(NOT BUILD_HEADER_ONLY)
167+
target_compile_definitions(${PROJECT_NAME}
168+
PRIVATE $<$<C_COMPILER_ID:GNU>:_GNU_SOURCE>)
169+
170+
# pkg-config file
171+
configure_file(miniz.pc.in ${CMAKE_CURRENT_BINARY_DIR}/miniz.pc @ONLY)
172+
173+
if(INSTALL_PROJECT)
174+
install(FILES
175+
${CMAKE_CURRENT_BINARY_DIR}/miniz.pc
176+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
177+
endif()
178+
endif()
179+
180+
set_property(TARGET ${PROJECT_NAME} PROPERTY
181+
INTERFACE_${PROJECT_NAME}_MAJOR_VERSION ${MINIZ_API_VERSION})
182+
set_property(TARGET ${PROJECT_NAME} APPEND PROPERTY
183+
COMPATIBLE_INTERFACE_STRING ${PROJECT_NAME}_MAJOR_VERSION
184+
)
185+
186+
if(INSTALL_PROJECT)
187+
install(TARGETS ${PROJECT_NAME} EXPORT ${PROJECT_NAME}Targets
188+
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
189+
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
190+
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
191+
# users can use <miniz.h> or <miniz/miniz.h>
192+
INCLUDES DESTINATION include ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}
193+
)
194+
195+
include(CMakePackageConfigHelpers)
196+
write_basic_package_version_file(
197+
"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/${PROJECT_NAME}ConfigVersion.cmake"
198+
VERSION ${MINIZ_VERSION}
199+
COMPATIBILITY AnyNewerVersion
200+
)
201+
202+
export(EXPORT ${PROJECT_NAME}Targets
203+
FILE "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/${PROJECT_NAME}Targets.cmake"
204+
NAMESPACE ${PROJECT_NAME}::
205+
)
206+
configure_file(Config.cmake.in
207+
"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/${PROJECT_NAME}Config.cmake"
208+
@ONLY
209+
)
210+
211+
set(ConfigPackageLocation ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME})
212+
install(EXPORT ${PROJECT_NAME}Targets
213+
FILE
214+
${PROJECT_NAME}Targets.cmake
215+
NAMESPACE
216+
${PROJECT_NAME}::
217+
DESTINATION
218+
${ConfigPackageLocation}
3219
)
220+
install(
221+
FILES
222+
"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/${PROJECT_NAME}Config.cmake"
223+
"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/${PROJECT_NAME}ConfigVersion.cmake"
224+
DESTINATION
225+
${ConfigPackageLocation}
226+
COMPONENT
227+
Devel
228+
)
229+
endif()
230+
231+
if(BUILD_EXAMPLES)
232+
set(EXAMPLE1_SRC_LIST "${CMAKE_CURRENT_SOURCE_DIR}/examples/example1.c")
233+
set(EXAMPLE2_SRC_LIST "${CMAKE_CURRENT_SOURCE_DIR}/examples/example2.c")
234+
set(EXAMPLE3_SRC_LIST "${CMAKE_CURRENT_SOURCE_DIR}/examples/example3.c")
235+
set(EXAMPLE4_SRC_LIST "${CMAKE_CURRENT_SOURCE_DIR}/examples/example4.c")
236+
set(EXAMPLE5_SRC_LIST "${CMAKE_CURRENT_SOURCE_DIR}/examples/example5.c")
237+
set(EXAMPLE6_SRC_LIST "${CMAKE_CURRENT_SOURCE_DIR}/examples/example6.c")
238+
set(MINIZ_TESTER_SRC_LIST
239+
"${CMAKE_CURRENT_SOURCE_DIR}/tests/miniz_tester.cpp"
240+
"${CMAKE_CURRENT_SOURCE_DIR}/tests/timer.cpp")
241+
242+
add_executable(example1 ${EXAMPLE1_SRC_LIST})
243+
target_link_libraries(example1 miniz)
244+
add_executable(example2 ${EXAMPLE2_SRC_LIST})
245+
target_link_libraries(example2 miniz)
246+
add_executable(example3 ${EXAMPLE3_SRC_LIST})
247+
target_link_libraries(example3 miniz)
248+
add_executable(example4 ${EXAMPLE4_SRC_LIST})
249+
target_link_libraries(example4 miniz)
250+
add_executable(example5 ${EXAMPLE5_SRC_LIST})
251+
target_link_libraries(example5 miniz)
252+
add_executable(example6 ${EXAMPLE6_SRC_LIST})
253+
target_link_libraries(example6 miniz)
254+
if(${UNIX})
255+
target_link_libraries(example6 m)
256+
endif()
257+
258+
# add_executable(miniz_tester ${MINIZ_TESTER_SRC_LIST})
259+
# target_link_libraries(miniz_tester miniz)
260+
endif(BUILD_EXAMPLES)
261+
262+
if(BUILD_FUZZERS)
263+
set(FUZZ_MAIN_SRC "${CMAKE_CURRENT_SOURCE_DIR}/tests/fuzz_main.c")
264+
265+
set(CHECKSUM_FUZZER_SRC_LIST "${FUZZ_MAIN_SRC}" "${CMAKE_CURRENT_SOURCE_DIR}/tests/checksum_fuzzer.c")
266+
set(FLUSH_FUZZER_SRC_LIST "${FUZZ_MAIN_SRC}" "${CMAKE_CURRENT_SOURCE_DIR}/tests/flush_fuzzer.c")
267+
set(UNCOMPRESS_FUZZER_SRC_LIST "${FUZZ_MAIN_SRC}" "${CMAKE_CURRENT_SOURCE_DIR}/tests/uncompress_fuzzer.c")
268+
set(UNCOMPRESS2_FUZZER_SRC_LIST "${FUZZ_MAIN_SRC}" "${CMAKE_CURRENT_SOURCE_DIR}/tests/uncompress2_fuzzer.c")
269+
set(COMPRESS_FUZZER_SRC_LIST "${FUZZ_MAIN_SRC}" "${CMAKE_CURRENT_SOURCE_DIR}/tests/compress_fuzzer.c")
270+
set(SMALL_FUZZER_SRC_LIST "${FUZZ_MAIN_SRC}" "${CMAKE_CURRENT_SOURCE_DIR}/tests/small_fuzzer.c")
271+
set(LARGE_FUZZER_SRC_LIST "${FUZZ_MAIN_SRC}" "${CMAKE_CURRENT_SOURCE_DIR}/tests/large_fuzzer.c")
272+
set(ZIP_FUZZER_SRC_LIST "${FUZZ_MAIN_SRC}" "${CMAKE_CURRENT_SOURCE_DIR}/tests/zip_fuzzer.c")
273+
274+
add_executable(checksum_fuzzer ${CHECKSUM_FUZZER_SRC_LIST})
275+
target_link_libraries(checksum_fuzzer miniz)
276+
277+
add_executable(flush_fuzzer ${FLUSH_FUZZER_SRC_LIST})
278+
target_link_libraries(flush_fuzzer miniz)
279+
280+
add_executable(uncompress_fuzzer ${UNCOMPRESS_FUZZER_SRC_LIST})
281+
target_link_libraries(uncompress_fuzzer miniz)
282+
283+
add_executable(uncompress2_fuzzer ${UNCOMPRESS2_FUZZER_SRC_LIST})
284+
target_link_libraries(uncompress2_fuzzer miniz)
285+
286+
add_executable(compress_fuzzer ${COMPRESS_FUZZER_SRC_LIST})
287+
target_link_libraries(compress_fuzzer miniz)
288+
289+
add_executable(small_fuzzer ${SMALL_FUZZER_SRC_LIST})
290+
target_link_libraries(small_fuzzer miniz)
291+
292+
add_executable(large_fuzzer ${LARGE_FUZZER_SRC_LIST})
293+
target_link_libraries(large_fuzzer miniz)
294+
295+
add_executable(zip_fuzzer ${ZIP_FUZZER_SRC_LIST})
296+
target_link_libraries(zip_fuzzer miniz)
297+
endif()
298+
299+
set(INCLUDE_INSTALL_DIR "include")
300+
301+
if(INSTALL_PROJECT)
302+
install(FILES ${INSTALL_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME})
303+
endif()
4304

5-
add_definitions("-DMINIZ_NO_ARCHIVE_APIS -DMINIZ_NO_STDIO -DMINIZ_NO_TIME")
6-
add_library(miniz STATIC ${src})
7-
target_link_libraries(miniz ${CMAKE_DL_LIBS})

lib/miniz/ChangeLog.md

Lines changed: 49 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,52 @@
11
## Changelog
22

3+
### 3.0.0
4+
5+
- Reduce memory usage for inflate. This changes `struct tinfl_decompressor_tag` and therefore requires a major version bump (breaks ABI compatibility)
6+
- Add padding to structures so it continues to work if features differ. This also changes some structures
7+
- Use _ftelli64, _fseeki64 and stat with MinGW32 and OpenWatcom
8+
- Fix varios warnings with OpenWatcom compiler
9+
- Avoid using unaligned memory access in UBSan builds
10+
- Set MINIZ_LITTLE_ENDIAN only if not set
11+
- Add MINIZ_NO_DEFLATE_APIS and MINIZ_NO_INFLATE_APIS
12+
- Fix use of uninitialized memory in tinfl_decompress_mem_to_callback()
13+
- Use wfopen on windows
14+
- Use _wstat64 instead _stat64 on windows
15+
- Use level_and_flags after MZ_DEFAULT_COMPRESSION has been handled
16+
- Improve endianess detection
17+
- Don't use unaligned stores and loads per default
18+
- Fix function declaration if MINIZ_NO_STDIO is used
19+
- Fix MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_UTF8 not being set
20+
- Remove total files check (its 32-bit uint)
21+
- tinfl_decompress: avoid NULL ptr arithmetic UB
22+
- miniz_zip: fix mz_zip_reader_extract_to_heap to read correct sizes
23+
- Eliminate 64-bit operations on 32-bit machines
24+
- Disable treating warnings as error with MSVC
25+
- Disable building shared lib via CMake by default
26+
- Fixed alignment problems on MacOS
27+
- Fixed get error string for MZ_ZIP_TOTAL_ERRORS
28+
- Write correct FLEVEL 2-bit value in zlib header
29+
30+
### 2.2.0
31+
32+
- Fix examples with amalgamation
33+
- Modified cmake script to support shared library mode and find_package
34+
- Fix for misleading doc comment on `mz_zip_reader_init_cfile` function
35+
- Add include location tolerance and stop forcing `_GNU_SOURCE`
36+
- Fix: mz_zip_reader_locate_file_v2 returns an mz_bool
37+
- Fix large file system checks
38+
- Add #elif to enable an external mz_crc32() to be linked in
39+
- Write with dynamic size (size of file/data to be added not known before adding)
40+
- Added uncompress2 for zlib compatibility
41+
- Add support for building as a Meson subproject
42+
- Added OSSFuzz support; Integrate with CIFuzz
43+
- Add pkg-config file
44+
- Fixed use-of-uninitialized value msan error when copying dist bytes with no output bytes written.
45+
- mz_zip_validate_file(): fix memory leak on errors
46+
- Fixed MSAN use-of-uninitialized in tinfl_decompress when invalid dist is decoded. In this instance dist was 31 which s_dist_base translates as 0
47+
- Add flag to set (compressed) size in local file header
48+
- avoid use of uninitialized value in tdefl_record_literal
49+
350
### 2.1.0
451

552
- More instances of memcpy instead of cast and use memcpy per default
@@ -82,7 +129,7 @@ The inflator now has a new failure status TINFL_STATUS_FAILED_CANNOT_MAKE_PROGRE
82129
- The inflator coroutine func. is subtle and complex so I'm being cautious about this release. I would greatly appreciate any help with testing or any feedback.
83130
I feel good about these changes, and they've been through several hours of automated testing, but they will probably not fix anything for the majority of prev. users so I'm
84131
going to mark this release as beta for a few weeks and continue testing it at work/home on various things.
85-
- The inflator in raw (non-zlib) mode is now usable on gzip or similiar data streams that have a bunch of bytes following the raw deflate data (problem discovered by rustyzip author williamw520).
132+
- The inflator in raw (non-zlib) mode is now usable on gzip or similar data streams that have a bunch of bytes following the raw deflate data (problem discovered by rustyzip author williamw520).
86133
This version should *never* read beyond the last byte of the raw deflate data independent of how many bytes you pass into the input buffer. This issue was caused by the various Huffman bitbuffer lookahead optimizations, and
87134
would not be an issue if the caller knew and enforced the precise size of the raw compressed data *or* if the compressed data was in zlib format (i.e. always followed by the byte aligned zlib adler32).
88135
So in other words, you can now call the inflator on deflate streams that are followed by arbitrary amounts of data and it's guaranteed that decompression will stop exactly on the last byte.
@@ -103,7 +150,7 @@ Merged over a few very minor bug fixes that I fixed in the zip64 branch. This is
103150
Interim bugfix release while I work on the next major release with zip64 and streaming compression/decompression support. Fixed the MZ_ZIP_FLAG_DO_NOT_SORT_CENTRAL_DIRECTORY bug (thanks kahmyong.moon@hp.com), which could cause the locate files func to not find files when this flag was specified. Also fixed a bug in mz_zip_reader_extract_to_mem_no_alloc() with user provided read buffers (thanks kymoon). I also merged lots of compiler fixes from various github repo branches and Google Code issue reports. I finally added cmake support (only tested under for Linux so far), compiled and tested with clang v3.3 and gcc 4.6 (under Linux), added defl_write_image_to_png_file_in_memory_ex() (supports Y flipping for OpenGL use, real-time compression), added a new PNG example (example6.c - Mandelbrot), and I added 64-bit file I/O support (stat64(), etc.) for glibc.
104151

105152
- Critical fix for the MZ_ZIP_FLAG_DO_NOT_SORT_CENTRAL_DIRECTORY bug (thanks kahmyong.moon@hp.com) which could cause locate files to not find files. This bug
106-
would only have occured in earlier versions if you explicitly used this flag, OR if you used mz_zip_extract_archive_file_to_heap() or mz_zip_add_mem_to_archive_file_in_place()
153+
would only have occurred in earlier versions if you explicitly used this flag, OR if you used mz_zip_extract_archive_file_to_heap() or mz_zip_add_mem_to_archive_file_in_place()
107154
(which used this flag). If you can't switch to v1.15 but want to fix this bug, just remove the uses of this flag from both helper funcs (and of course don't use the flag).
108155
- Bugfix in mz_zip_reader_extract_to_mem_no_alloc() from kymoon when pUser_read_buf is not NULL and compressed size is > uncompressed size
109156
- Fixing mz_zip_reader_extract_*() funcs so they don't try to extract compressed data from directory entries, to account for weird zipfiles which contain zero-size compressed data on dir entries.

lib/miniz/Config.cmake.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake")

lib/miniz/VERSION.md

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
=== Miniz Version ===
22

3-
commit b43f8a0c22d6bae6b5416264232f57a2aca539fe
4-
Merge: 17d6763 1e8c7ce
3+
commit ca0cdfc52d193bf738e59e47c5206812a3315bcd
4+
Merge: 7b9bcf7 a203b9a
55
Author: Martin Raiber <martin@urbackup.org>
6-
Date: Sun Feb 7 22:03:46 2021 +0100
6+
Date: Thu Aug 25 22:03:10 2022 +0200
77

8-
Merge pull request #147 from andiwand/write-with-dynamic-size
9-
write with dynamic size
8+
Merge pull request #252 from JonLiu1993/vcpkg-instructions
9+
10+
Add vcpkg installation instructions

0 commit comments

Comments
 (0)