2008-04-01 17:26:49

by Joy Latten

[permalink] [raw]
Subject: [PATCH]: kernel crashes when ipsec uses xcbc-mac with big data chunk

The kernel crashes when ipsec passes a udp packet of about 14XX bytes
of data to aes-xcbc-mac.

It seems the first xxxx bytes of the data are in first sg entry,
and remaining xx bytes are in next sg entry. But we don't
check next sg entry to see if we need to go look the page up.

I noticed in hmac.c, we do a scatterwalk_sg_next(), to do this check
and possible lookup, thus xcbc.c needs to use this routine too.

A 15-hour run of an ipsec stress test sending streams of tcp and
udp packets of various sizes, using this patch and
aes-xcbc-mac completed successfully, so hopefully this fixes the
problem.

regards,
Joy

Signed-off-by: Joy Latten <[email protected]>

diff -urpN net-2.6.26/crypto/xcbc.c net-2.6.26.sb/crypto/xcbc.c
--- net-2.6.26/crypto/xcbc.c 2008-03-31 15:27:17.000000000 -0500
+++ net-2.6.26.sb/crypto/xcbc.c 2008-03-31 15:43:53.000000000 -0500
@@ -116,13 +116,11 @@ static int crypto_xcbc_digest_update2(st
struct crypto_xcbc_ctx *ctx = crypto_hash_ctx_aligned(parent);
struct crypto_cipher *tfm = ctx->child;
int bs = crypto_hash_blocksize(parent);
- unsigned int i = 0;

- do {


2008-04-02 06:39:22

by Herbert Xu

[permalink] [raw]
Subject: Re: [PATCH]: kernel crashes when ipsec uses xcbc-mac with big data chunk

On Tue, Apr 01, 2008 at 12:23:10PM -0500, Joy Latten wrote:
> The kernel crashes when ipsec passes a udp packet of about 14XX bytes
> of data to aes-xcbc-mac.
>
> It seems the first xxxx bytes of the data are in first sg entry,
> and remaining xx bytes are in next sg entry. But we don't
> check next sg entry to see if we need to go look the page up.
>
> I noticed in hmac.c, we do a scatterwalk_sg_next(), to do this check
> and possible lookup, thus xcbc.c needs to use this routine too.
>
> A 15-hour run of an ipsec stress test sending streams of tcp and
> udp packets of various sizes, using this patch and
> aes-xcbc-mac completed successfully, so hopefully this fixes the
> problem.
>
> regards,
> Joy
>
> Signed-off-by: Joy Latten <[email protected]>

Applied to crypto-2.6.

Thanks Joy!
--
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <[email protected]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt