blob: bd0a48d5b88f9172cb2c154c674a46baa2484e95 [file]
From stable+bounces-242002-greg=kroah.com@vger.kernel.org Thu Apr 30 08:10:13 2026
From: Eric Biggers <ebiggers@kernel.org>
Date: Wed, 29 Apr 2026 23:07:01 -0700
Subject: crypto: authencesn - Fix src offset when decrypting in-place
To: stable@vger.kernel.org
Cc: linux-crypto@vger.kernel.org, Herbert Xu <herbert@gondor.apana.org.au>, Wolfgang Walter <linux@stwm.de>, Eric Biggers <ebiggers@kernel.org>
Message-ID: <20260430060702.110091-8-ebiggers@kernel.org>
From: Herbert Xu <herbert@gondor.apana.org.au>
commit 1f48ad3b19a9dfc947868edda0bb8e48e5b5a8fa upstream.
The src SG list offset wasn't set properly when decrypting in-place,
fix it.
Reported-by: Wolfgang Walter <linux@stwm.de>
Fixes: e02494114ebf ("crypto: authencesn - Do not place hiseq at end of dst for out-of-place decryption")
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Eric Biggers <ebiggers@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
crypto/authencesn.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
--- a/crypto/authencesn.c
+++ b/crypto/authencesn.c
@@ -233,9 +233,11 @@ static int crypto_authenc_esn_decrypt_ta
decrypt:
- if (src != dst)
- src = scatterwalk_ffwd(areq_ctx->src, src, assoclen);
dst = scatterwalk_ffwd(areq_ctx->dst, dst, assoclen);
+ if (req->src == req->dst)
+ src = dst;
+ else
+ src = scatterwalk_ffwd(areq_ctx->src, src, assoclen);
skcipher_request_set_tfm(skreq, ctx->enc);
skcipher_request_set_callback(skreq, flags,