mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-08-31 08:15:07 -04:00
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:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user