diff options
| author | Herbert Xu <herbert@gondor.apana.org.au> | 2024-02-28 17:13:16 +0800 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2024-04-03 15:28:40 +0200 |
| commit | 48dd260fdb728eda4a246f635d1325e82f0d3555 (patch) | |
| tree | 040be2dd1c0d6f2740c7d6ca9fbba496d17babcd /drivers/crypto | |
| parent | c288a61a48ddb77ec097e11ab81b81027cd4e197 (diff) | |
| download | linux-48dd260fdb728eda4a246f635d1325e82f0d3555.tar.gz linux-48dd260fdb728eda4a246f635d1325e82f0d3555.tar.bz2 linux-48dd260fdb728eda4a246f635d1325e82f0d3555.zip | |
crypto: rk3288 - Fix use after free in unprepare
commit c0afb6b88fbbc177fa322a835f874be217bffe45 upstream.
The unprepare call must be carried out before the finalize call
as the latter can free the request.
Fixes: c66c17a0f69b ("crypto: rk3288 - Remove prepare/unprepare request")
Reported-by: Andrey Skvortsov <andrej.skvortzov@gmail.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Reviewed-by: Andrey Skvortsov <andrej.skvortzov@gmail.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/crypto')
| -rw-r--r-- | drivers/crypto/rockchip/rk3288_crypto_ahash.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/crypto/rockchip/rk3288_crypto_ahash.c b/drivers/crypto/rockchip/rk3288_crypto_ahash.c index 8c143180645e..29c9537216fa 100644 --- a/drivers/crypto/rockchip/rk3288_crypto_ahash.c +++ b/drivers/crypto/rockchip/rk3288_crypto_ahash.c @@ -332,12 +332,12 @@ static int rk_hash_run(struct crypto_engine *engine, void *breq) theend: pm_runtime_put_autosuspend(rkc->dev); + rk_hash_unprepare(engine, breq); + local_bh_disable(); crypto_finalize_hash_request(engine, breq, err); local_bh_enable(); - rk_hash_unprepare(engine, breq); - return 0; } |
