diff mbox

[v2,3/4] crypto: algif_hash - wait for crypto_ahash_init() to complete

Message ID 1453885718-24599-4-git-send-email-rui.y.wang@intel.com (mailing list archive)
State Accepted
Delegated to: Herbert Xu
Headers show

Commit Message

Wang, Rui Y Jan. 27, 2016, 9:08 a.m. UTC
hash_sendmsg/sendpage() need to wait for the completion
of crypto_ahash_init() otherwise it can cause panic.

Signed-off-by: Rui Wang <rui.y.wang@intel.com>
---
 crypto/algif_hash.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Herbert Xu Feb. 1, 2016, 8:17 a.m. UTC | #1
On Wed, Jan 27, 2016 at 05:08:37PM +0800, Rui Wang wrote:
> hash_sendmsg/sendpage() need to wait for the completion
> of crypto_ahash_init() otherwise it can cause panic.
> 
> Signed-off-by: Rui Wang <rui.y.wang@intel.com>

Applied to crypto.
diff mbox

Patch

diff --git a/crypto/algif_hash.c b/crypto/algif_hash.c
index b4c24fe..83dc095 100644
--- a/crypto/algif_hash.c
+++ b/crypto/algif_hash.c
@@ -49,7 +49,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;
 	}
@@ -120,6 +121,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;
 		}