Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

crypto: rk3288 - Fix use after free in unprepare

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>

+2 -2
+2 -2
drivers/crypto/rockchip/rk3288_crypto_ahash.c
··· 332 332 theend: 333 333 pm_runtime_put_autosuspend(rkc->dev); 334 334 335 + rk_hash_unprepare(engine, breq); 336 + 335 337 local_bh_disable(); 336 338 crypto_finalize_hash_request(engine, breq, err); 337 339 local_bh_enable(); 338 - 339 - rk_hash_unprepare(engine, breq); 340 340 341 341 return 0; 342 342 }