On Tue, Jan 13, 2009 at 10:34:13AM +0800, Huang Ying wrote:
> 
> static void ablk_complete(struct crypto_async_request *req, int err)
> {
>         struct ablkcipher_request *ablk_req = ablkcipher_request_cast(req);
>         struct async_aes_req_ctx *req_ctx =
>                 ablk_aes_req_ctx(ablk_req, 
> crypto_ablkcipher_reqtfm(ablk_req));

This is not guaranteed to work.  Your completion caller may be
called with a request pointer other than the one that you passed
to it.  The only thing we guarantee is that req->data has the
value that you set at the beginning.

Cheers,
-- 
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <herb...@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
--
To unsubscribe from this list: send the line "unsubscribe linux-crypto" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to