From: Wang, Rui Y Date: Wed, 27 Jan 2016 09:08:37 +0000 (+0800) Subject: crypto: algif_hash - wait for crypto_ahash_init() to complete X-Git-Tag: v4.1.12-92~150^2~251 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=c15a3f12cce70708fc94ac7a7f1a2923375dbc7a;p=users%2Fjedix%2Flinux-maple.git crypto: algif_hash - wait for crypto_ahash_init() to complete Orabug: 23330797 [ Upstream commit fe09786178f9df713a4b2dd6b93c0a722346bf5e ] hash_sendmsg/sendpage() need to wait for the completion of crypto_ahash_init() otherwise it can cause panic. Cc: stable@vger.kernel.org Signed-off-by: Rui Wang Signed-off-by: Herbert Xu Signed-off-by: Sasha Levin (cherry picked from commit bd92b10c95b37a4d6c043ad76d51d13dee45c477) Signed-off-by: Dan Duval --- diff --git a/crypto/algif_hash.c b/crypto/algif_hash.c index 7b5018b34c97..d7a3435280d8 100644 --- a/crypto/algif_hash.c +++ b/crypto/algif_hash.c @@ -54,7 +54,8 @@ static int hash_sendmsg(struct socket *sock, struct msghdr *msg, lock_sock(sk); if (!ctx->more) { - err = crypto_ahash_init(&ctx->req); + err = af_alg_wait_for_completion(crypto_ahash_init(&ctx->req), + &ctx->completion); if (err) goto unlock; } @@ -125,6 +126,7 @@ static ssize_t hash_sendpage(struct socket *sock, struct page *page, } else { if (!ctx->more) { err = crypto_ahash_init(&ctx->req); + err = af_alg_wait_for_completion(err, &ctx->completion); if (err) goto unlock; }