]> git.hungrycats.org Git - linux/commitdiff
crypto: ccp - Fill the result buffer only on digest, finup, and final ops
authorGary R Hook <gary.hook@amd.com>
Wed, 7 Mar 2018 17:37:42 +0000 (11:37 -0600)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 8 Apr 2018 12:29:50 +0000 (14:29 +0200)
commit 0ee991be4cdd88587aedbf68cdacd1765f57236a upstream.

Any change to the result buffer should only happen on final, finup
and digest operations. Changes to the buffer for update, import, export,
etc, are not allowed.

Fixes: 66d7b9f6175e ("crypto: testmgr - test misuse of result in ahash")
Signed-off-by: Gary R Hook <gary.hook@amd.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/crypto/ccp/ccp-crypto-aes-cmac.c
drivers/crypto/ccp/ccp-crypto-sha.c

index 60fc0fa26fd3b19ab557888d9bd6e61c208fe0f6..26687f318de623a14aae7304b0956d9781a9def0 100644 (file)
@@ -46,7 +46,7 @@ static int ccp_aes_cmac_complete(struct crypto_async_request *async_req,
        }
 
        /* Update result area if supplied */
-       if (req->result)
+       if (req->result && rctx->final)
                memcpy(req->result, rctx->iv, digest_size);
 
 e_free:
index 8b9b16d433f7ebf979c6758af6bce73417ba844b..871c9628a2ee67497ed81718e4dd046b1eae8df4 100644 (file)
@@ -47,7 +47,7 @@ static int ccp_sha_complete(struct crypto_async_request *async_req, int ret)
        }
 
        /* Update result area if supplied */
-       if (req->result)
+       if (req->result && rctx->final)
                memcpy(req->result, rctx->ctx, digest_size);
 
 e_free: