diff options
author | Jonathan Corbet <corbet@lwn.net> | 2017-03-07 00:22:51 -0700 |
---|---|---|
committer | Jonathan Corbet <corbet@lwn.net> | 2017-03-07 00:22:51 -0700 |
commit | 07d045372921bfaa843ea00749c150b099ca0a49 (patch) | |
tree | f849e8432047d3e0fc04590ddfb6a76ba953f9b6 /crypto/lz4.c | |
parent | 1bd9a34ffdd5f22ef74ed68b5d8b6fb4b781d58c (diff) | |
parent | 4c6427919ee920d5963cf826de76292286342aa0 (diff) | |
download | linux-crypto-07d045372921bfaa843ea00749c150b099ca0a49.tar.gz linux-crypto-07d045372921bfaa843ea00749c150b099ca0a49.zip |
Merge tag 'v4.11-rc1' into docs-next
Linux 4.11-rc1
Diffstat (limited to 'crypto/lz4.c')
-rw-r--r-- | crypto/lz4.c | 23 |
1 files changed, 9 insertions, 14 deletions
diff --git a/crypto/lz4.c b/crypto/lz4.c index 99c1b2cc..71eff9b0 100644 --- a/crypto/lz4.c +++ b/crypto/lz4.c @@ -66,15 +66,13 @@ static void lz4_exit(struct crypto_tfm *tfm) static int __lz4_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_default(src, dst, + slen, *dlen, ctx); - err = lz4_compress(src, slen, dst, &tmp_len, ctx); - - if (err < 0) + if (!out_len) return -EINVAL; - *dlen = tmp_len; + *dlen = out_len; return 0; } @@ -96,16 +94,13 @@ static int lz4_compress_crypto(struct crypto_tfm *tfm, const u8 *src, static int __lz4_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 lz4_sdecompress(struct crypto_scomp *tfm, const u8 *src, |