From f70a68adacf612988a3c3e0045017c262248dbd0 Mon Sep 17 00:00:00 2001 From: Steve Bennett Date: Thu, 20 Apr 2017 13:57:05 +1000 Subject: zlib: compression may need some additional free space Signed-off-by: Stuart Cassoff --- jim-zlib.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'jim-zlib.c') diff --git a/jim-zlib.c b/jim-zlib.c index 36bb02f..bb91913 100644 --- a/jim-zlib.c +++ b/jim-zlib.c @@ -85,6 +85,10 @@ static int Jim_Compress(Jim_Interp *interp, const char *in, int len, long level, } strm.avail_out = deflateBound(&strm, (uLong)len); + + /* Some compression methods may need a little more space */ + strm.avail_out += 100; + if (strm.avail_out > INT_MAX) { deflateEnd(&strm); return JIM_ERR; @@ -100,6 +104,7 @@ static int Jim_Compress(Jim_Interp *interp, const char *in, int len, long level, if (deflate(&strm, Z_FINISH) != Z_STREAM_END) { Jim_Free(buf); deflateEnd(&strm); + Jim_SetResultString(interp, "not enough output space", -1); return JIM_ERR; } @@ -107,6 +112,7 @@ static int Jim_Compress(Jim_Interp *interp, const char *in, int len, long level, if (strm.total_out > INT_MAX) { Jim_Free(buf); + Jim_SetResultString(interp, "too much output", -1); return JIM_ERR; } -- cgit v1.1