From 1bb400dcb258f135a3f92f6242e728f0475325c1 Mon Sep 17 00:00:00 2001 From: igorechek06 Date: Sat, 10 Aug 2024 17:58:14 +0900 Subject: Unify zip errors --- src/zip/driver.rs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'src/zip/driver.rs') diff --git a/src/zip/driver.rs b/src/zip/driver.rs index 9dccfd0..81629dd 100644 --- a/src/zip/driver.rs +++ b/src/zip/driver.rs @@ -83,11 +83,11 @@ impl ArchiveRead for Zip { + io.read_vec( (limit as usize) .checked_sub(18) - .ok_or(ZipError::EocdrNotFound)?, + .ok_or(ZipError::StructNotFound("Eocdr"))?, )? .windows(4) .rposition(|v| v == EOCDR_SIGNATURE) - .ok_or(ZipError::EocdrNotFound)? as u64; + .ok_or(ZipError::StructNotFound("Eocdr"))? as u64; // Read eocdr io.seek(SeekFrom::Start(pos + 4))?; @@ -106,7 +106,7 @@ impl ArchiveRead for Zip { io.seek(SeekFrom::Start(eocdr64locator.eocdr64_pointer))?; let buf = io.read_arr::<56>()?; if buf[0..4] != EOCDR64_SIGNATURE { - return Err(ZipError::InvalidEocdr64Signature); + return Err(ZipError::InvalidSignature("Eocdr64")); } let eocdr64: Eocdr64 = deserialize(&buf[4..]).unwrap(); if eocdr64.cd_pointer + eocdr64.cd_size > eocdr64locator.eocdr64_pointer { @@ -139,14 +139,14 @@ impl ArchiveRead for Zip { let buf = cd_reader.read_arr::<46>()?; if buf[..4] != CDR_SIGNATURE { - return Err(ZipError::InvalidCdrSignature); + return Err(ZipError::InvalidSignature("Cdr")); } let cdr: Cdr = deserialize(&buf[4..46]).unwrap(); let bit_flag = BitFlag::new(cdr.bit_flag); let name = cd_reader.read_vec(cdr.name_len as usize)?; let name = if bit_flag.is_utf8() { - String::from_utf8(name).map_err(|_| ZipError::InvalidFileName)? + String::from_utf8(name).map_err(|_| ZipError::InvalidField("file_name"))? } else { String::from_cp437(name) }; @@ -155,7 +155,7 @@ impl ArchiveRead for Zip { let comment = cd_reader.read_vec(cdr.comment_len as usize)?; let comment = if bit_flag.is_utf8() { - String::from_utf8(comment).map_err(|_| ZipError::InvalidFileComment)? + String::from_utf8(comment).map_err(|_| ZipError::InvalidField("file_comment"))? } else { String::from_cp437(comment) }; @@ -216,7 +216,7 @@ impl ArchiveRead for Zip { 0x9901 => { let aes: AesField = deserialize(&data.read_arr::<7>()?).unwrap(); if aes.id != [0x41, 0x45] { - return Err(ZipError::InvalidExtraFields); + return Err(ZipError::InvalidField("extra_fields")); } encryption_method = match aes.strength { 0x01 => EncryptionMethod::Aes128, @@ -232,7 +232,7 @@ impl ArchiveRead for Zip { } if compression_method == 99 { - return Err(ZipError::AesExtraFieldNotFound); + return Err(ZipError::StructNotFound("AesExtensibleData")); } indexes.insert(name.clone(), i); -- cgit v1.2.3