OSDN Git Service

crypto: algif_aead - Fix bogus request dereference in completion function
authorHerbert Xu <herbert@gondor.apana.org.au>
Mon, 10 Apr 2017 09:59:07 +0000 (17:59 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 21 Apr 2017 07:31:22 +0000 (09:31 +0200)
commit64ba06dc8a1d5c8e70b7b79a709bd1c90ec23afc
tree62a792fe27cd2fc4327c3107dd35bb139b64c000
parent7da0f8e547c2d3cac939da24458a88cce550af11
crypto: algif_aead - Fix bogus request dereference in completion function

commit e6534aebb26e32fbab14df9c713c65e8507d17e4 upstream.

The algif_aead completion function tries to deduce the aead_request
from the crypto_async_request argument.  This is broken because
the API does not guarantee that the same request will be pased to
the completion function.  Only the value of req->data can be used
in the completion function.

This patch fixes it by storing a pointer to sk in areq and using
that instead of passing in sk through req->data.

Fixes: 83094e5e9e49 ("crypto: af_alg - add async support to...")
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
crypto/algif_aead.c