aboutsummaryrefslogtreecommitdiff
path: root/src/zip
diff options
context:
space:
mode:
Diffstat (limited to 'src/zip')
-rw-r--r--src/zip/driver.rs6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/zip/driver.rs b/src/zip/driver.rs
index c9a5155..8662623 100644
--- a/src/zip/driver.rs
+++ b/src/zip/driver.rs
@@ -97,11 +97,13 @@ impl<IO: Read + Seek> ArchiveRead for Zip<IO> {
97 p += 4; 97 p += 4;
98 let cdr: CDR = deserialize(&buf[p..p + 42]).unwrap(); 98 let cdr: CDR = deserialize(&buf[p..p + 42]).unwrap();
99 p += 42; 99 p += 42;
100 let name = String::from_utf8(buf[p..p + cdr.name_len as usize].into()).unwrap(); 100 let name = String::from_utf8(buf[p..p + cdr.name_len as usize].into())
101 .map_err(|_| ZipError::InvalidFileName)?;
101 p += cdr.name_len as usize; 102 p += cdr.name_len as usize;
102 let extra_fields: Vec<u8> = buf[p..p + cdr.extra_field_len as usize].into(); 103 let extra_fields: Vec<u8> = buf[p..p + cdr.extra_field_len as usize].into();
103 p += cdr.extra_field_len as usize; 104 p += cdr.extra_field_len as usize;
104 let comment = String::from_utf8(buf[p..p + cdr.comment_len as usize].into()).unwrap(); 105 let comment = String::from_utf8(buf[p..p + cdr.comment_len as usize].into())
106 .map_err(|_| ZipError::InvalidFileComment)?;
105 p += cdr.comment_len as usize; 107 p += cdr.comment_len as usize;
106 108
107 let mut compressed_size = cdr.compressed_size as u64; 109 let mut compressed_size = cdr.compressed_size as u64;