You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Panic when reading a file truncated in the middle of an XZ block header
Some archives with over u16::MAX files were handled incorrectly or slowly (#189)
Check number of files when deciding whether a CDE is the real one
Could still select a fake CDE over a real one in some cases
May have to consider multiple CDEs before filtering for validity
We now keep searching for a real CDE header after read an invalid one from the file comment
Always search for data start when opening an archive for append, and reject the header if data appears to start after central directory
deep_copy_file no longer allows overwriting an existing file, to match the behavior of shallow_copy_file
File start position was wrong when extra data was present
Abort file if central extra data is too large
Overflow panic when central directory extra data is too large
ZIP64 header was being written twice when copying a file
ZIP64 header was being written to central header twice
Start position was incorrect when file had no extra data
Allow all reserved headers we can create
Fix a bug where alignment padding interacts with other extra-data fields
Fix bugs involving alignment padding and Unicode extra fields
Incorrect header when adding AES-encrypted files
Parse the extra field and reject it if invalid
Incorrect behavior following a rare combination of merge_archive, abort_file and deep_copy_file. As well, we now return an error when a file is being copied to itself.
path_to_string now properly handles the case of an empty path
Implement Debug for ZipWriter even when it's not implemented for the inner writer's type
Fix an issue where the central directory could be incorrectly detected
finish_into_readable() would corrupt the archive if the central directory had moved
🚜 Refactor
Verify with debug assertions that no FixedSizeBlock expects a multi-byte alignment (#198)
Use new do_or_abort_file method
⚡ Performance
Speed up CRC when encrypting small files
Limit the number of extra fields
Refactor extra-data validation
Store extra data in plain vectors until after validation
Only build one IndexMap after choosing among the possible valid headers
Simplify validation of empty extra-data fields
Validate automatic extra-data fields only once, even if several are present
Remove redundant validate_extra_data() call
Skip searching for the ZIP32 header if a valid ZIP64 header is present (#189)