From 18b613fc0b63cb6e5a9b408ef7f47da8f153d6c6 Mon Sep 17 00:00:00 2001 From: Igor Tolmachev Date: Tue, 25 Jun 2024 23:24:18 +0900 Subject: Fix string errors --- src/zip/driver.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src') 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 ArchiveRead for Zip { p += 4; let cdr: CDR = deserialize(&buf[p..p + 42]).unwrap(); p += 42; - let name = String::from_utf8(buf[p..p + cdr.name_len as usize].into()).unwrap(); + let name = String::from_utf8(buf[p..p + cdr.name_len as usize].into()) + .map_err(|_| ZipError::InvalidFileName)?; p += cdr.name_len as usize; let extra_fields: Vec = buf[p..p + cdr.extra_field_len as usize].into(); p += cdr.extra_field_len as usize; - let comment = String::from_utf8(buf[p..p + cdr.comment_len as usize].into()).unwrap(); + let comment = String::from_utf8(buf[p..p + cdr.comment_len as usize].into()) + .map_err(|_| ZipError::InvalidFileComment)?; p += cdr.comment_len as usize; let mut compressed_size = cdr.compressed_size as u64; -- cgit v1.2.3