diff --git a/crypto/adiantum.c b/crypto/adiantum.c index a6bca877c3c7..edd53c793fda 100644 --- a/crypto/adiantum.c +++ b/crypto/adiantum.c @@ -310,6 +310,7 @@ static int adiantum_finish(struct skcipher_request *req) return err; } le128_sub(&rctx->rbuf.bignum, &rctx->rbuf.bignum, &digest); + memset(&rctx->rbuf.bignum, 0, sizeof(rctx->rbuf.bignum)); memcpy(virt + bulk_len, &rctx->rbuf.bignum, sizeof(le128)); flush_dcache_page(page); kunmap_local(virt); @@ -370,6 +371,7 @@ static int adiantum_crypt(struct skcipher_request *req, bool enc) } else { /* Slow path that works for any source scatterlist */ err = adiantum_hash_message(req, src, src_nents, &digest); + memset(&rctx->rbuf.bignum, 0, sizeof(rctx->rbuf.bignum)); scatterwalk_map_and_copy(&rctx->rbuf.bignum, src, bulk_len, sizeof(le128), 0); }