summaryrefslogtreecommitdiff
path: root/crypto
diff options
context:
space:
mode:
authorSebastian Andrzej Siewior <bigeasy@linutronix.de>2019-03-29 16:09:55 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2024-01-26 01:33:33 +0300
commit1915874d67287ba1ab71825ae6a4efbb2a0e2b11 (patch)
tree543ce636a92dea49853979de7933f6d646088f9e /crypto
parent28076a1a44407a15442589780b1d06579504adc3 (diff)
downloadlinux-1915874d67287ba1ab71825ae6a4efbb2a0e2b11.tar.xz
crypto: scompress - return proper error code for allocation failure
[ Upstream commit 6a4d1b18ef00a7b182740b7b4d8a0fcd317368f8 ] If scomp_acomp_comp_decomp() fails to allocate memory for the destination then we never copy back the data we compressed. It is probably best to return an error code instead 0 in case of failure. I haven't found any user that is using acomp_request_set_params() without the `dst' buffer so there is probably no harm. Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Stable-dep-of: 744e1885922a ("crypto: scomp - fix req->dst buffer overflow") Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'crypto')
-rw-r--r--crypto/scompress.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/crypto/scompress.c b/crypto/scompress.c
index 968bbcf65c94..15641c96ff99 100644
--- a/crypto/scompress.c
+++ b/crypto/scompress.c
@@ -174,8 +174,10 @@ static int scomp_acomp_comp_decomp(struct acomp_req *req, int dir)
if (!ret) {
if (!req->dst) {
req->dst = sgl_alloc(req->dlen, GFP_ATOMIC, NULL);
- if (!req->dst)
+ if (!req->dst) {
+ ret = -ENOMEM;
goto out;
+ }
}
scatterwalk_map_and_copy(scratch_dst, req->dst, 0, req->dlen,
1);