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)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 9 Mar 2018 14:47:05 +0000 (22:47 +0800)
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>
drivers/crypto/ccp/ccp-crypto-aes-cmac.c
drivers/crypto/ccp/ccp-crypto-sha.c

index 60fc0fa..26687f3 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 8b9b16d..871c962 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: