crypto: scompress - return proper error code for allocation failure
authorSebastian Andrzej Siewior <bigeasy@linutronix.de>
Fri, 29 Mar 2019 13:09:55 +0000 (14:09 +0100)
committerHerbert Xu <herbert@gondor.apana.org.au>
Mon, 8 Apr 2019 06:36:16 +0000 (14:36 +0800)
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>
crypto/scompress.c

index 6f8305f8c300407cc351cf935ed862bda5b4a0d2..aea1a8e5d1954190c58b7dadb3a33347b450ac5a 100644 (file)
@@ -171,8 +171,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);