Cleanup on error

This commit is contained in:
Kornel Lesiński 2018-08-04 18:52:17 +01:00
parent 947ccaad04
commit 4ec8cf8c7f

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 => {
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"));