From 720a650f8ab3166d32fc5da64961e8d2158b9452 Mon Sep 17 00:00:00 2001
From: Herbert Xu <herbert@gondor.apana.org.au>
Date: Fri, 28 Sep 2007 09:06:11 +0800
Subject: [PATCH] [CRYPTO] cryptomgr: Fix parsing of recursive algorithms

As Joy Latten points out, inner algorithm parameters will miss the closing
bracket which will also cause the outer algorithm to terminate prematurely.

This patch fixes that also kills the WARN_ON if the number of parameters
exceed the maximum as that is a user error.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
---
 crypto/cryptomgr.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/crypto/cryptomgr.c b/crypto/cryptomgr.c
index c83884fec5f92..e5e3cf848d425 100644
--- a/crypto/cryptomgr.c
+++ b/crypto/cryptomgr.c
@@ -129,6 +129,7 @@ static int cryptomgr_schedule_probe(struct crypto_larval *larval)
 			}
 
 			notnum = 1;
+			p++;
 		}
 
 		len = p - name;
@@ -151,7 +152,7 @@ static int cryptomgr_schedule_probe(struct crypto_larval *larval)
 		param->tb[i + 1] = &param->attrs[i].attr;
 		i++;
 
-		if (WARN_ON(i >= CRYPTO_MAX_ATTRS))
+		if (i >= CRYPTO_MAX_ATTRS)
 			goto err_free_param;
 
 		if (*p == ')')
-- 
GitLab