crypto: skcipher - Fix skcipher_dequeue_givcrypt NULL test
authorHerbert Xu <herbert@gondor.apana.org.au>
Sat, 29 Aug 2009 10:44:04 +0000 (20:44 +1000)
committerHerbert Xu <herbert@gondor.apana.org.au>
Sat, 29 Aug 2009 10:44:04 +0000 (20:44 +1000)
commit0c7d400fafaeab6014504a6a6249f01bac7f7db4
tree1bce003eb85e15de168dc92ef09d7e94da24fcc5
parentb6f34d44cb341ad32f08717d1a2c418e6053a031
crypto: skcipher - Fix skcipher_dequeue_givcrypt NULL test

As struct skcipher_givcrypt_request includes struct crypto_request
at a non-zero offset, testing for NULL after converting the pointer
returned by crypto_dequeue_request does not work.  This can result
in IPsec crashes when the queue is depleted.

This patch fixes it by doing the pointer conversion only when the
return value is non-NULL.  In particular, we create a new function
__crypto_dequeue_request that does the pointer conversion.

Reported-by: Brad Bosch <bradbosch@comcast.net>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
crypto/algapi.c
include/crypto/algapi.h
include/crypto/internal/skcipher.h