aboutsummaryrefslogtreecommitdiff
path: root/src/zip/driver.rs
diff options
context:
space:
mode:
authorTolmachev Igor <me@igorek.dev>2024-09-01 20:15:08 +0300
committerTolmachev Igor <me@igorek.dev>2024-09-01 20:15:08 +0300
commitdafe3b01d7dfe5f314dea37c312beae20e017f4e (patch)
treecfea2d919280bf07be4d3110434d5c579a65e70f /src/zip/driver.rs
parent27da50f9d157927ec56dae8316d0edc34eaa244d (diff)
downloadarchivator-dafe3b01d7dfe5f314dea37c312beae20e017f4e.tar.gz
archivator-dafe3b01d7dfe5f314dea37c312beae20e017f4e.zip
Add test for InvalidSignature for struct CDR
Diffstat (limited to 'src/zip/driver.rs')
-rw-r--r--src/zip/driver.rs6
1 files changed, 2 insertions, 4 deletions
diff --git a/src/zip/driver.rs b/src/zip/driver.rs
index 0502c85..b44c453 100644
--- a/src/zip/driver.rs
+++ b/src/zip/driver.rs
@@ -145,12 +145,10 @@ impl<Io: Read + Seek> ArchiveRead for Zip<Io> {
145 ); 145 );
146 146
147 for i in 0..cd_records as usize { 147 for i in 0..cd_records as usize {
148 let buf = cd_reader.read_arr::<46>()?; 148 if cd_reader.read_arr()? != CDR_SIGNATURE {
149
150 if buf[..4] != CDR_SIGNATURE {
151 return Err(ZipError::InvalidSignature("Cdr")); 149 return Err(ZipError::InvalidSignature("Cdr"));
152 } 150 }
153 let cdr: Cdr = deserialize(&buf[4..46]).unwrap(); 151 let cdr: Cdr = deserialize(&cd_reader.read_arr::<42>()?).unwrap();
154 let bit_flag = BitFlag::new(cdr.bit_flag); 152 let bit_flag = BitFlag::new(cdr.bit_flag);
155 153
156 let name = cd_reader.read_vec(cdr.name_len as usize)?; 154 let name = cd_reader.read_vec(cdr.name_len as usize)?;