diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/zip/driver.rs | 6 |
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)?; |
