From: Aseem Rastogi crypto/zlib: When zlib_deflate is called with Z_FINISH flag, it should be considered valid if it returns Z_OK instead of Z_STREAM_END. zlib_defalte allows callers to call it with Z_FINISH flag multiple times. This is useful if output buffer did not have enough space first time zlib_deflate was called with Z_FINISH set. zlib_deflate returns Z_OK in that case and expects that caller will invoke it again with Z_FINISH set to collect remaining data. So, return value from zlib_deflate can be Z_OK OR Z_STREAM_END. zlib_compress_final is modified to allow return value of Z_OK. Signed-off-by: Aseem Rastogi <arastogi@xxxxxxxxxxxxx> Tested-by: Aseem Rastogi <arastogi@xxxxxxxxxxxxx> Reviewed-by: Vasily Tarasov <vtaras@xxxxxxxxxxxxx> diff --git a/crypto/zlib.c b/crypto/zlib.c index c301573..c63c520 100644 --- a/crypto/zlib.c +++ b/crypto/zlib.c @@ -190,7 +190,7 @@ static int zlib_compress_final(struct crypto_pcomp *tfm, stream->avail_out = req->avail_out; ret = zlib_deflate(stream, Z_FINISH); - if (ret != Z_STREAM_END) { + if ((ret != Z_STREAM_END) && (ret != Z_OK)) { pr_debug("zlib_deflate failed %d\n", ret); return -EINVAL; } -- To unsubscribe from this list: send the line "unsubscribe linux-crypto" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html