summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArd Biesheuvel <ard.biesheuvel@linaro.org>2017-07-21 16:42:37 +0100
committerHerbert Xu <herbert@gondor.apana.org.au>2017-08-03 13:52:44 +0800
commit4757f1715ee63e749594ef98c0631125f3607671 (patch)
tree71067aada412f91e3077acd8902aa37a4796c78c
parent3014649037efac090a2c0d806d7f8d0a28a95cb3 (diff)
downloadlinux-crypto-4757f1715ee63e749594ef98c0631125f3607671.tar.gz
linux-crypto-4757f1715ee63e749594ef98c0631125f3607671.zip
crypto: scompress - free partially allocated scratch buffers on failure
When allocating the per-CPU scratch buffers, we allocate the source and destination buffers separately, but bail immediately if the second allocation fails, without freeing the first one. Fix that. Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
-rw-r--r--crypto/scompress.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/crypto/scompress.c b/crypto/scompress.c
index 0b40d991..2c076483 100644
--- a/crypto/scompress.c
+++ b/crypto/scompress.c
@@ -125,8 +125,11 @@ static int crypto_scomp_alloc_all_scratches(void)
if (!scomp_src_scratches)
return -ENOMEM;
scomp_dst_scratches = crypto_scomp_alloc_scratches();
- if (!scomp_dst_scratches)
+ if (!scomp_dst_scratches) {
+ crypto_scomp_free_scratches(scomp_src_scratches);
+ scomp_src_scratches = NULL;
return -ENOMEM;
+ }
}
return 0;
}