Merge pull request #88 from emielbeinema/79-error-for-apng
Return an error when an APNG header is encountered
This commit is contained in:
commit
7822d89d65
3 changed files with 24 additions and 0 deletions
|
|
@ -239,6 +239,8 @@ impl PngData {
|
|||
};
|
||||
if header.0 == "IDAT" {
|
||||
idat_headers.extend(header.1);
|
||||
} else if header.0 == "acTL" {
|
||||
return Err(PngError::new("APNG files are not (yet) supported"));
|
||||
} else {
|
||||
aux_headers.insert(header.0, header.1);
|
||||
}
|
||||
|
|
|
|||
BIN
tests/files/apng_file.png
Normal file
BIN
tests/files/apng_file.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 62 KiB |
22
tests/lib.rs
22
tests/lib.rs
|
|
@ -31,6 +31,19 @@ fn optimize_from_memory_corrupted() {
|
|||
assert!(result.is_err());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn optimize_from_memory_apng() {
|
||||
let mut in_file = File::open("tests/files/apng_file.png").unwrap();
|
||||
let mut in_file_buf: Vec<u8> = Vec::new();
|
||||
in_file.read_to_end(&mut in_file_buf).unwrap();
|
||||
|
||||
let mut opts: oxipng::Options = Default::default();
|
||||
opts.verbosity = Some(1);
|
||||
|
||||
let result = oxipng::optimize_from_memory(&in_file_buf, &opts);
|
||||
assert!(result.is_err());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn optimize() {
|
||||
let mut opts: oxipng::Options = Default::default();
|
||||
|
|
@ -48,3 +61,12 @@ fn optimize_corrupted() {
|
|||
let result = oxipng::optimize(Path::new("tests/files/corrupted_header.png"), &opts);
|
||||
assert!(result.is_err());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn optimize_apng() {
|
||||
let mut opts: oxipng::Options = Default::default();
|
||||
opts.verbosity = Some(1);
|
||||
|
||||
let result = oxipng::optimize(Path::new("tests/files/apng_file.png"), &opts);
|
||||
assert!(result.is_err());
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue