crypto: octeontx2 - Unwind allocations when AEAD initialization fails
Subsystems (3)
PATCH 1/1 crypto: octeontx2 - Unwind allocations when AEAD initialization fails
cpt_aead_init() allocates a hash transform, descriptor and pads before looking up a CPT device and initializing the hardware context. Failures in those later steps return without freeing the earlier allocations. If fallback allocation fails, the hardware context is also left mapped and allocated. The algorithm exit callback does not run after a failed initialization.
Release the hardware context when fallback initialization fails and free the hash resources on all three failure paths.
--- .../crypto/marvell/octeontx2/otx2_cptvf_algs.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-)
drivers/crypto/marvell/octeontx2/otx2_cptvf_algs.c +13 -3
@@ -671,14 +671,24 @@ static int cpt_aead_init(struct crypto_aead *atfm, u8 cipher_type, u8 mac_type) ret =get_se_device (&pdev, &cpu_num);if (ret) -return ret; + goto err_free_hash; ctx->pdev = pdev; ret =cn10k_cpt_hw_ctx_init (pdev, &ctx->er_ctx);if (ret) -return ret; + goto err_free_hash; -return cpt_aead_fallback_init (ctx, alg); + ret =cpt_aead_fallback_init (ctx, alg); +if (!ret) +return 0 ; + +cn10k_cpt_hw_ctx_clear (pdev, &ctx->er_ctx); +err_free_hash: +kfree (ctx->opad); +kfree (ctx->ipad); +kfree (ctx->sdesc); +crypto_free_shash (ctx->hashalg); +return ret; }static int otx2_cpt_aead_cbc_aes_sha1_init (struct crypto_aead *tfm)
Signature · 1 line
2.34.1
Quoted 7 lines · Wentao Liang
cpt_aead_init()allocates a hash transform, descriptor and pads before looking up a CPT device and initializing the hardware context. Failures in those later steps return without freeing the earlier allocations. If fallback allocation fails, the hardware context is also left mapped and allocated. The algorithm exit callback does not run after a failed initialization.
Quoted 8 lines
Release the hardware context when fallback initialization fails and free the hash resources on all three failure paths.
Fixes 6f03f0e8b6c8 ("crypto: octeontx2 - register with linux crypto framework")Fixes e92971117c2c ("crypto: octeontx2 - add ctx_val workaround")Assisted-by DeepSeek-V4.1-Flash and OpenAI CodexSigned-off-by Wentao Liang <[email protected]>
Another fake identity of "vulab" doing exactly the same as other cases, repeating same mistake of running unsupervised crappy bot even though was asked multiple times to fix that.
Best regards,
Krzysztof