From 20a9c9e220b45d3fb025c433856ab4695fd454eb Mon Sep 17 00:00:00 2001 From: Mike Hommey Date: Thu, 31 Dec 2015 10:08:13 +0900 Subject: [PATCH] Bug 1235945 - Fix assertion error in some cases when running szip when debug flags are enabled for host tools. r=froydnj --- mozglue/linker/szip.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/mozglue/linker/szip.cpp b/mozglue/linker/szip.cpp index a6c4b27e1b92..050b0b543655 100644 --- a/mozglue/linker/szip.cpp +++ b/mozglue/linker/szip.cpp @@ -425,7 +425,11 @@ int SzipCompress::do_compress(Buffer &origBuf, Buffer &outBuf, zStream.avail_in = avail; zStream.next_in = data; ret = deflate(&zStream, Z_FINISH); - MOZ_ASSERT(ret == Z_STREAM_END); + /* Under normal conditions, deflate returns Z_STREAM_END. If there is not + * enough room to compress, deflate returns Z_OK and avail_out is 0. We + * still want to deflateEnd in that case, so fall through. It will bail + * on the avail_out test that follows. */ + MOZ_ASSERT(ret == Z_STREAM_END || ret == Z_OK); ret = deflateEnd(&zStream); MOZ_ASSERT(ret == Z_OK); if (zStream.avail_out <= 0)