Cleanup on error (#132)

Closes #126
This commit is contained in:
Kornel 2018-08-05 04:02:56 +01:00 committed by Josh Holmer
parent 947ccaad04
commit 1322416ba4

View file

@ -81,8 +81,14 @@ pub fn cfzlib_deflate(
stream.avail_out = out.capacity() as uInt;
match deflate(&mut stream, Z_FINISH) {
Z_STREAM_END => {}
Z_OK => return Err(PngError::DeflatedDataTooLong(stream.total_out as usize)),
_ => return Err(PngError::new("deflate")),
Z_OK | Z_BUF_ERROR => {
deflateEnd(&mut stream);
return Err(PngError::DeflatedDataTooLong(stream.total_out as usize));
},
_ => {
deflateEnd(&mut stream);
return Err(PngError::new("deflate"));
},
}
if Z_OK != deflateEnd(&mut stream) {
return Err(PngError::new("deflateEnd"));