fix: lower default version to 4.5 and use the version-needed-to-extract where feasible.
This commit is contained in:
parent
6d4e460556
commit
40f20d8a6b
2 changed files with 4 additions and 6 deletions
|
@ -388,7 +388,7 @@ impl TryFrom<DateTime> for OffsetDateTime {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub const DEFAULT_VERSION: u8 = 46;
|
pub const DEFAULT_VERSION: u8 = 45;
|
||||||
|
|
||||||
/// Structure representing a ZIP file.
|
/// Structure representing a ZIP file.
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
|
@ -617,9 +617,7 @@ impl ZipFileData {
|
||||||
extra_data_start,
|
extra_data_start,
|
||||||
aes_extra_data_start,
|
aes_extra_data_start,
|
||||||
};
|
};
|
||||||
local_block.version_made_by = local_block
|
local_block.version_made_by = local_block.version_needed() as u8;
|
||||||
.version_made_by
|
|
||||||
.max(local_block.version_needed() as u8);
|
|
||||||
local_block
|
local_block
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1357,7 +1357,7 @@ impl<W: Write + Seek> ZipWriter<W> {
|
||||||
fn write_central_and_footer(&mut self) -> Result<u64, ZipError> {
|
fn write_central_and_footer(&mut self) -> Result<u64, ZipError> {
|
||||||
let writer = self.inner.get_plain();
|
let writer = self.inner.get_plain();
|
||||||
|
|
||||||
let mut version_needed = 10;
|
let mut version_needed = 10; // Lowest value; even an empty ZIP file needs 1.0
|
||||||
let central_start = writer.stream_position()?;
|
let central_start = writer.stream_position()?;
|
||||||
for file in self.files.values() {
|
for file in self.files.values() {
|
||||||
write_central_directory_header(writer, file)?;
|
write_central_directory_header(writer, file)?;
|
||||||
|
@ -1369,7 +1369,7 @@ impl<W: Write + Seek> ZipWriter<W> {
|
||||||
|| central_size.max(central_start) > spec::ZIP64_BYTES_THR
|
|| central_size.max(central_start) > spec::ZIP64_BYTES_THR
|
||||||
{
|
{
|
||||||
let zip64_footer = spec::Zip64CentralDirectoryEnd {
|
let zip64_footer = spec::Zip64CentralDirectoryEnd {
|
||||||
version_made_by: version_needed.max(DEFAULT_VERSION as u16),
|
version_made_by: version_needed,
|
||||||
version_needed_to_extract: version_needed,
|
version_needed_to_extract: version_needed,
|
||||||
disk_number: 0,
|
disk_number: 0,
|
||||||
disk_with_central_directory: 0,
|
disk_with_central_directory: 0,
|
||||||
|
|
Loading…
Add table
Reference in a new issue