diff options
| author | Igor Tolmachev <me@igorek.dev> | 2024-06-25 23:24:18 +0900 |
|---|---|---|
| committer | Igor Tolmachev <me@igorek.dev> | 2024-06-25 23:24:18 +0900 |
| commit | 18b613fc0b63cb6e5a9b408ef7f47da8f153d6c6 (patch) | |
| tree | fac4c2ab00ab46fa01040f85999a72eb8e6336d2 /src/zip/driver.rs | |
| parent | 3c6dffa5ccfc72804a76f2090738721b90b10ce8 (diff) | |
| download | archivator-18b613fc0b63cb6e5a9b408ef7f47da8f153d6c6.tar.gz archivator-18b613fc0b63cb6e5a9b408ef7f47da8f153d6c6.zip | |
Fix string errors
Diffstat (limited to 'src/zip/driver.rs')
| -rw-r--r-- | src/zip/driver.rs | 6 |
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; |
