From 4ec8cf8c7f90cec00da551064c2b2b4aec76d769 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kornel=20Lesi=C5=84ski?= Date: Sat, 4 Aug 2018 18:52:17 +0100 Subject: [PATCH] Cleanup on error --- src/deflate/mod.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/deflate/mod.rs b/src/deflate/mod.rs index ae51b847..263bb3f8 100644 --- a/src/deflate/mod.rs +++ b/src/deflate/mod.rs @@ -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"));