Message ID | 20190530175308.196938-1-ebiggers@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | crypto: lrw - use correct alignmask | expand |
On Thu, May 30, 2019 at 10:53:08AM -0700, Eric Biggers wrote: > From: Eric Biggers <ebiggers@google.com> > > Commit c778f96bf347 ("crypto: lrw - Optimize tweak computation") > incorrectly reduced the alignmask of LRW instances from > '__alignof__(u64) - 1' to '__alignof__(__be32) - 1'. > > However, xor_tweak() and setkey() assume that the data and key, > respectively, are aligned to 'be128', which has u64 alignment. > > Fix the alignmask to be at least '__alignof__(be128) - 1'. > > Fixes: c778f96bf347 ("crypto: lrw - Optimize tweak computation") > Cc: <stable@vger.kernel.org> # v4.20+ > Cc: Ondrej Mosnacek <omosnace@redhat.com> > Signed-off-by: Eric Biggers <ebiggers@google.com> > --- > crypto/lrw.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) Patch applied. Thanks.
diff --git a/crypto/lrw.c b/crypto/lrw.c index fa302f3f161e0..b43ea285b8c79 100644 --- a/crypto/lrw.c +++ b/crypto/lrw.c @@ -388,7 +388,7 @@ static int create(struct crypto_template *tmpl, struct rtattr **tb) inst->alg.base.cra_priority = alg->base.cra_priority; inst->alg.base.cra_blocksize = LRW_BLOCK_SIZE; inst->alg.base.cra_alignmask = alg->base.cra_alignmask | - (__alignof__(__be32) - 1); + (__alignof__(be128) - 1); inst->alg.ivsize = LRW_BLOCK_SIZE; inst->alg.min_keysize = crypto_skcipher_alg_min_keysize(alg) +