2015-08-25 09:59:30

by Lars Persson

[permalink] [raw]
Subject: [PATCH] crypto: aead - fix for multiple operations on AF_ALG sockets

The tsgl scatterlist must be re-initialized after each
operation. Otherwise the sticky bits in the page_link will corrupt the
list with pre-mature termination or false chaining.

Signed-off-by: Lars Persson <[email protected]>
---
crypto/algif_aead.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/crypto/algif_aead.c b/crypto/algif_aead.c
index 38a6cab..0aa6fdf 100644
--- a/crypto/algif_aead.c
+++ b/crypto/algif_aead.c
@@ -90,6 +90,7 @@ static void aead_put_sgl(struct sock *sk)
put_page(sg_page(sg + i));
sg_assign_page(sg + i, NULL);
}
+ sg_init_table(sg, ALG_MAX_PAGES);
sgl->cur = 0;
ctx->used = 0;
ctx->more = 0;
--
2.1.4


2015-08-25 13:16:29

by Herbert Xu

[permalink] [raw]
Subject: Re: [PATCH] crypto: aead - fix for multiple operations on AF_ALG sockets

On Tue, Aug 25, 2015 at 11:59:15AM +0200, Lars Persson wrote:
> The tsgl scatterlist must be re-initialized after each
> operation. Otherwise the sticky bits in the page_link will corrupt the
> list with pre-mature termination or false chaining.
>
> Signed-off-by: Lars Persson <[email protected]>

Applied.
--
Email: Herbert Xu <[email protected]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt