6.18.22: a question to commit "crypto: algif_aead - Revert to operating out-of-place"

Wolfgang Walter posted 1 patch 2 months ago
6.18.22: a question to commit "crypto: algif_aead - Revert to operating out-of-place"
Posted by Wolfgang Walter 2 months ago
Hello

another maybe stupid question to

commit fafe0fa2995a0f7073c1c358d7d3145bcc9aedd8
Author: Herbert Xu <herbert@gondor.apana.org.au>
Date:   Thu Mar 26 15:30:20 2026 +0900

     crypto: algif_aead - Revert to operating out-of-place

     [ Upstream commit a664bf3d603dc3bdcf9ae47cc21e0daec706d7a5 ]

     This mostly reverts commit 72548b093ee3 except for the copying of
     the associated data.

     There is no benefit in operating in-place in algif_aead since the
     source and destination come from different mappings.  Get rid of
     all the complexity added for in-place operation and just copy the
     AD directly.

     Fixes: 72548b093ee3 ("crypto: algif_aead - copy AAD from src to 
dst")
     Reported-by: Taeyang Lee <0wn@theori.io>
     Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
     Signed-off-by: Sasha Levin <sashal@kernel.org>


This commit makes

crypto/algif_aead.c

almost like the version in v7.0, but there is a difference:

$ git diff v6.18.22..v7.0 crypto/algif_aead.c
diff --git a/crypto/algif_aead.c b/crypto/algif_aead.c
index dda15bb05e89..f8bd45f7dc83 100644
--- a/crypto/algif_aead.c
+++ b/crypto/algif_aead.c
@@ -144,7 +144,7 @@ static int _aead_recvmsg(struct socket *sock, struct 
msghdr *msg,
         if (usedpages < outlen) {
                 size_t less = outlen - usedpages;

-               if (used < less) {
+               if (used < less + (ctx->enc ? 0 : as)) {
                         err = -EINVAL;
                         goto free;
                 }


Is this intentional? Or is der missing a fix from v7.0 in 6.18.22

Regards
-- 
Wolfgang Walter
Studierendenwerk München Oberbayern
Anstalt des öffentlichen Rechts
Re: 6.18.22: a question to commit "crypto: algif_aead - Revert to operating out-of-place"
Posted by Sasha Levin 2 months ago
On Tue, Apr 14, 2026 at 07:04:11PM +0200, Wolfgang Walter wrote:
>Hello
>
>another maybe stupid question to
>
>commit fafe0fa2995a0f7073c1c358d7d3145bcc9aedd8
>Author: Herbert Xu <herbert@gondor.apana.org.au>
>Date:   Thu Mar 26 15:30:20 2026 +0900
>
>    crypto: algif_aead - Revert to operating out-of-place
>
>    [ Upstream commit a664bf3d603dc3bdcf9ae47cc21e0daec706d7a5 ]
>
>    This mostly reverts commit 72548b093ee3 except for the copying of
>    the associated data.
>
>    There is no benefit in operating in-place in algif_aead since the
>    source and destination come from different mappings.  Get rid of
>    all the complexity added for in-place operation and just copy the
>    AD directly.
>
>    Fixes: 72548b093ee3 ("crypto: algif_aead - copy AAD from src to 
>dst")
>    Reported-by: Taeyang Lee <0wn@theori.io>
>    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
>    Signed-off-by: Sasha Levin <sashal@kernel.org>
>
>
>This commit makes
>
>crypto/algif_aead.c
>
>almost like the version in v7.0, but there is a difference:
>
>$ git diff v6.18.22..v7.0 crypto/algif_aead.c
>diff --git a/crypto/algif_aead.c b/crypto/algif_aead.c
>index dda15bb05e89..f8bd45f7dc83 100644
>--- a/crypto/algif_aead.c
>+++ b/crypto/algif_aead.c
>@@ -144,7 +144,7 @@ static int _aead_recvmsg(struct socket *sock, 
>struct msghdr *msg,
>        if (usedpages < outlen) {
>                size_t less = outlen - usedpages;
>
>-               if (used < less) {
>+               if (used < less + (ctx->enc ? 0 : as)) {
>                        err = -EINVAL;
>                        goto free;
>                }
>
>
>Is this intentional? Or is der missing a fix from v7.0 in 6.18.22

This is in 7c1d57841aa0 ("crypto: algif_aead - Fix minimum RX size check for
decryption"). It should make it into the next-next release.

-- 
Thanks,
Sasha