]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
crypto: sha1-mb - use corrcet pointer while completing jobs
authorXiaodong Liu <xiaodong.liu@intel.com>
Tue, 12 Apr 2016 09:45:51 +0000 (09:45 +0000)
committerDhaval Giani <dhaval.giani@oracle.com>
Fri, 20 Jan 2017 22:21:48 +0000 (17:21 -0500)
Orabug: 25227128

[ Upstream commit 0851561d9c965df086ef8a53f981f5f95a57c2c8 ]

In sha_complete_job, incorrect mcryptd_hash_request_ctx pointer is used
when check and complete other jobs. If the memory of first completed req
is freed, while still completing other jobs in the func, kernel will
crash since NULL pointer is assigned to RIP.

Cc: <stable@vger.kernel.org>
Signed-off-by: Xiaodong Liu <xiaodong.liu@intel.com>
Acked-by: Tim Chen <tim.c.chen@linux.intel.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
(cherry picked from commit f6a93797957220ead95f575047f43e1d4d085205)

Signed-off-by: Dhaval Giani <dhaval.giani@oracle.com>
arch/x86/crypto/sha-mb/sha1_mb.c

index e510b1c5d690a5115231c608a51b6d4a37932d76..e5b79c1bb191a135c0f20242da65f548bac826df 100644 (file)
@@ -456,10 +456,10 @@ static int sha_complete_job(struct mcryptd_hash_request_ctx *rctx,
 
                        req = cast_mcryptd_ctx_to_req(req_ctx);
                        if (irqs_disabled())
-                               rctx->complete(&req->base, ret);
+                               req_ctx->complete(&req->base, ret);
                        else {
                                local_bh_disable();
-                               rctx->complete(&req->base, ret);
+                               req_ctx->complete(&req->base, ret);
                                local_bh_enable();
                        }
                }