crypto: asymmetric_keys - handle EBUSY due to backlog correctly
public_key_verify_signature() was passing the CRYPTO_TFM_REQ_MAY_BACKLOG flag to akcipher_request_set_callback() but was not handling correctly the case where a -EBUSY error could be returned from the call to crypto_akcipher_verify() if backlog was used, possibly casuing data corruption due to use-after-free of buffers. Resolve this by handling -EBUSY correctly. Signed-off-by: Gilad Ben-Yossef <gilad@benyossef.com> CC: stable@vger.kernel.org Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
parent
9933e113c2
commit
e68368aed5
|
@ -141,7 +141,7 @@ int public_key_verify_signature(const struct public_key *pkey,
|
||||||
* signature and returns that to us.
|
* signature and returns that to us.
|
||||||
*/
|
*/
|
||||||
ret = crypto_akcipher_verify(req);
|
ret = crypto_akcipher_verify(req);
|
||||||
if (ret == -EINPROGRESS) {
|
if ((ret == -EINPROGRESS) || (ret == -EBUSY)) {
|
||||||
wait_for_completion(&compl.completion);
|
wait_for_completion(&compl.completion);
|
||||||
ret = compl.err;
|
ret = compl.err;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue