Merge tag 'v7.3-p2' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6

Pull crypto fix from Herbert Xu:
 "Fix a memory allocation overrun in crypto acomp"

* tag 'v7.3-p2' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
  crypto: acomp - allocate async request context when cloning
This commit is contained in:
Linus Torvalds
2026-08-28 09:28:40 -07:00

View File

@@ -559,12 +559,22 @@ EXPORT_SYMBOL_GPL(acomp_walk_virt);
struct acomp_req *acomp_request_clone(struct acomp_req *req,
size_t total, gfp_t gfp)
{
struct crypto_tfm *tfm = req->base.tfm;
struct acomp_req *nreq;
size_t len;
nreq = container_of(crypto_request_clone(&req->base, total, gfp),
struct acomp_req, base);
if (nreq == req)
len = sizeof(*req) +
crypto_acomp_reqsize(crypto_acomp_reqtfm(req));
len = ALIGN(len, CRYPTO_MINALIGN);
nreq = kzalloc(len, gfp);
if (!nreq) {
req->base.tfm = tfm->fb;
return req;
}
memcpy(nreq, req, sizeof(*req));
nreq->base.flags &= ~CRYPTO_TFM_REQ_ON_STACK;
if (req->src == &req->chain.ssg)
nreq->src = &nreq->chain.ssg;