zip-rs/zip2 (zip)
### [`v2.1.4`](https://togithub.com/zip-rs/zip2/blob/HEAD/CHANGELOG.md#214---2024-07-18)
[Compare Source](https://togithub.com/zip-rs/zip2/compare/v2.1.3...v2.1.4)
##### π Bug Fixes
- fix([#215](https://togithub.com/zip-rs/zip2/pull/215)): Upgrade to deflate64 0.1.9
- 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](https://togithub.com/zip-rs/zip2/pull/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](https://togithub.com/zip-rs/zip2/pull/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](https://togithub.com/zip-rs/zip2/pull/189))
##### βοΈ Miscellaneous Tasks
- Fix a bug introduced by [`c934c82`](https://togithub.com/zip-rs/zip2/commit/c934c824)
- Fix a failing unit test
- Fix build errors on older Rust versions
- Fix build
- Fix another fuzz failure
- Switch to `ok_or_abort_file`, and inline when that fails borrow checker
- Switch to `ok_or_abort_file`, and inline when that fails borrow checker
- Fix a build error
- Fix boxed_local warning (can borrow instead)
- Partial debug
- Fix more errors when parsing multiple extra fields
- Fix an error when decoding AES header
- Fix an error caused by not allowing 0xa11e field
- Bug fix: crypto_header was being counted toward extra_data_end
- Bug fix: revert a change where crypto_header was incorrectly treated as an extra field
- Fix a bug where a modulo of 0 was used
- Fix a bug when ZipCrypto, alignment *and* a custom header are used
- Fix a bug when both ZipCrypto and alignment are used
- Fix another bug: header_end vs extra_data_end
- Fix use of a stale value in a `debug_assert_eq!`
- Fix: may still get an incorrect size if opening an invalid file for append
- Fix: may need the absolute start as tiebreaker to ensure deterministic behavior
Configuration
π Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
π¦ Automerge: Disabled by config. Please merge this manually once you are satisfied.
β» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
π Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box
This PR has been generated by Mend Renovate. View repository job log here.
This PR contains the following updates:
2.1.3
->2.1.4
Release Notes
zip-rs/zip2 (zip)
### [`v2.1.4`](https://togithub.com/zip-rs/zip2/blob/HEAD/CHANGELOG.md#214---2024-07-18) [Compare Source](https://togithub.com/zip-rs/zip2/compare/v2.1.3...v2.1.4) ##### π Bug Fixes - fix([#215](https://togithub.com/zip-rs/zip2/pull/215)): Upgrade to deflate64 0.1.9 - 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](https://togithub.com/zip-rs/zip2/pull/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](https://togithub.com/zip-rs/zip2/pull/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](https://togithub.com/zip-rs/zip2/pull/189)) ##### βοΈ Miscellaneous Tasks - Fix a bug introduced by [`c934c82`](https://togithub.com/zip-rs/zip2/commit/c934c824) - Fix a failing unit test - Fix build errors on older Rust versions - Fix build - Fix another fuzz failure - Switch to `ok_or_abort_file`, and inline when that fails borrow checker - Switch to `ok_or_abort_file`, and inline when that fails borrow checker - Fix a build error - Fix boxed_local warning (can borrow instead) - Partial debug - Fix more errors when parsing multiple extra fields - Fix an error when decoding AES header - Fix an error caused by not allowing 0xa11e field - Bug fix: crypto_header was being counted toward extra_data_end - Bug fix: revert a change where crypto_header was incorrectly treated as an extra field - Fix a bug where a modulo of 0 was used - Fix a bug when ZipCrypto, alignment *and* a custom header are used - Fix a bug when both ZipCrypto and alignment are used - Fix another bug: header_end vs extra_data_end - Fix use of a stale value in a `debug_assert_eq!` - Fix: may still get an incorrect size if opening an invalid file for append - Fix: may need the absolute start as tiebreaker to ensure deterministic behaviorConfiguration
π Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
π¦ Automerge: Disabled by config. Please merge this manually once you are satisfied.
β» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
π Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate. View repository job log here.