Re: Crypto oops in async_chainiv_do_postponed
From: Herbert Xu <herbert@gondor.apana.org.au>
Date: 2009-08-31 22:04:59
Also in:
netdev
From: Herbert Xu <herbert@gondor.apana.org.au>
Date: 2009-08-31 22:04:59
Also in:
netdev
On Mon, Aug 31, 2009 at 11:11:42AM -0500, Brad Bosch wrote:
OK. I was looking for something subtle because the crash takes a long time to happen. But do you agree that the race I described above also a real bug?
No I don't think it is. CHAINV_STATE_INUSE guarantees that only one entity can use ctx->err at any time.
Yes, I see that this bug must be the bug we would likely encounter first. Apparently, async_chainiv_do_postponed was never tested? But I don't see how the patch you proposed below helps. We still don't seem to be returning NULL from skcipher_dequeue_givcrypt when we reach the end of the queue because __crypto_dequeue_request is not checking for NULL before it subtracts offset.
Where we subtract the offset the pointer can never be NULL. Please try my patch. Thanks, -- Visit Openswan at http://www.openswan.org/ Email: Herbert Xu ~{PmV>HI~} [off-list ref] Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt