diff --git a/fuzz/corpus/fuzz_read/chinese.zip b/fuzz/corpus/fuzz_read/chinese.zip new file mode 100644 index 00000000..8fcd465d Binary files /dev/null and b/fuzz/corpus/fuzz_read/chinese.zip differ diff --git a/src/read.rs b/src/read.rs index 83d3db33..eb7ad7d9 100644 --- a/src/read.rs +++ b/src/read.rs @@ -1788,4 +1788,12 @@ mod test { assert!(tempdir.path().join("bar").is_symlink()); Ok(()) } + + #[test] + fn test_utf8_extra_field() { + let mut v = Vec::new(); + v.extend_from_slice(include_bytes!("../tests/data/chinese.zip")); + let mut reader = ZipArchive::new(Cursor::new(v)).unwrap(); + reader.by_name("七个房间.txt").unwrap(); + } } diff --git a/tests/data/chinese.zip b/tests/data/chinese.zip new file mode 100644 index 00000000..8fcd465d Binary files /dev/null and b/tests/data/chinese.zip differ