chore: Fix: may still get an incorrect size if opening an invalid file for append
This commit is contained in:
parent
73396be9f9
commit
cf19487a55
1 changed files with 6 additions and 3 deletions
|
@ -592,10 +592,13 @@ impl<A: Read + Write + Seek> ZipWriter<A> {
|
||||||
self.finish_file()?;
|
self.finish_file()?;
|
||||||
let write_position = self.inner.get_plain().stream_position()?;
|
let write_position = self.inner.get_plain().stream_position()?;
|
||||||
let src_index = self.index_by_name(src_name)?;
|
let src_index = self.index_by_name(src_name)?;
|
||||||
let src_data = &self.files[src_index];
|
let src_data = &mut self.files[src_index];
|
||||||
let data_start = *src_data.data_start.get().unwrap_or(&0);
|
let data_start = *src_data.data_start.get().unwrap_or(&0);
|
||||||
let compressed_size = src_data.compressed_size;
|
let mut compressed_size = src_data.compressed_size;
|
||||||
debug_assert!(compressed_size <= write_position - data_start);
|
if compressed_size > write_position - data_start {
|
||||||
|
compressed_size = write_position - data_start;
|
||||||
|
src_data.compressed_size = compressed_size;
|
||||||
|
}
|
||||||
let uncompressed_size = src_data.uncompressed_size;
|
let uncompressed_size = src_data.uncompressed_size;
|
||||||
|
|
||||||
let raw_values = ZipRawValues {
|
let raw_values = ZipRawValues {
|
||||||
|
|
Loading…
Add table
Reference in a new issue