summaryrefslogtreecommitdiff
path: root/crypto/lz4hc.c
diff options
context:
space:
mode:
authorJonathan Corbet <corbet@lwn.net>2017-03-07 00:22:51 -0700
committerJonathan Corbet <corbet@lwn.net>2017-03-07 00:22:51 -0700
commit07d045372921bfaa843ea00749c150b099ca0a49 (patch)
treef849e8432047d3e0fc04590ddfb6a76ba953f9b6 /crypto/lz4hc.c
parent1bd9a34ffdd5f22ef74ed68b5d8b6fb4b781d58c (diff)
parent4c6427919ee920d5963cf826de76292286342aa0 (diff)
downloadlinux-crypto-07d045372921bfaa843ea00749c150b099ca0a49.tar.gz
linux-crypto-07d045372921bfaa843ea00749c150b099ca0a49.zip
Merge tag 'v4.11-rc1' into docs-next
Linux 4.11-rc1
Diffstat (limited to '')
-rw-r--r--crypto/lz4hc.c23
1 files changed, 9 insertions, 14 deletions
diff --git a/crypto/lz4hc.c b/crypto/lz4hc.c
index 75ffc4a3..03a34a81 100644
--- a/crypto/lz4hc.c
+++ b/crypto/lz4hc.c
@@ -65,15 +65,13 @@ static void lz4hc_exit(struct crypto_tfm *tfm)
static int __lz4hc_compress_crypto(const u8 *src, unsigned int slen,
u8 *dst, unsigned int *dlen, void *ctx)
{
- size_t tmp_len = *dlen;
- int err;
+ int out_len = LZ4_compress_HC(src, dst, slen,
+ *dlen, LZ4HC_DEFAULT_CLEVEL, ctx);
- err = lz4hc_compress(src, slen, dst, &tmp_len, ctx);
-
- if (err < 0)
+ if (!out_len)
return -EINVAL;
- *dlen = tmp_len;
+ *dlen = out_len;
return 0;
}
@@ -97,16 +95,13 @@ static int lz4hc_compress_crypto(struct crypto_tfm *tfm, const u8 *src,
static int __lz4hc_decompress_crypto(const u8 *src, unsigned int slen,
u8 *dst, unsigned int *dlen, void *ctx)
{
- int err;
- size_t tmp_len = *dlen;
- size_t __slen = slen;
+ int out_len = LZ4_decompress_safe(src, dst, slen, *dlen);
- err = lz4_decompress_unknownoutputsize(src, __slen, dst, &tmp_len);
- if (err < 0)
- return -EINVAL;
+ if (out_len < 0)
+ return out_len;
- *dlen = tmp_len;
- return err;
+ *dlen = out_len;
+ return 0;
}
static int lz4hc_sdecompress(struct crypto_scomp *tfm, const u8 *src,