diff --git a/src/read.rs b/src/read.rs index f8ac295f..cb3f0725 100644 --- a/src/read.rs +++ b/src/read.rs @@ -465,4 +465,15 @@ mod test { let reader = ZipArchive::new(io::Cursor::new(v)); assert!(reader.is_err()); } + + #[test] + fn zip64_with_leading_junk() { + use std::io; + use super::ZipArchive; + + let mut v = Vec::new(); + v.extend_from_slice(include_bytes!("../tests/data/zip64_demo.zip")); + let reader = ZipArchive::new(io::Cursor::new(v)).unwrap(); + assert!(reader.len() == 1); + } } diff --git a/tests/data/zip64_demo.zip b/tests/data/zip64_demo.zip new file mode 100644 index 00000000..f2ceee30 Binary files /dev/null and b/tests/data/zip64_demo.zip differ