aboutsummaryrefslogtreecommitdiffstats
path: root/crypto/cryptomgr.c
diff options
context:
space:
mode:
authorHerbert Xu <herbert@gondor.apana.org.au>2007-09-27 21:06:11 -0400
committerDavid S. Miller <davem@sunset.davemloft.net>2007-10-10 19:55:45 -0400
commit720a650f8ab3166d32fc5da64961e8d2158b9452 (patch)
tree87676471c8550ec09935982a910bda5454928d92 /crypto/cryptomgr.c
parentf19f5111c94053ba4931892f5c01c806de33942e (diff)
[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>
Diffstat (limited to 'crypto/cryptomgr.c')
-rw-r--r--crypto/cryptomgr.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/crypto/cryptomgr.c b/crypto/cryptomgr.c
index c83884fec5f9..e5e3cf848d42 100644
--- a/crypto/cryptomgr.c
+++ b/crypto/cryptomgr.c
@@ -129,6 +129,7 @@ static int cryptomgr_schedule_probe(struct crypto_larval *larval)
129 } 129 }
130 130
131 notnum = 1; 131 notnum = 1;
132 p++;
132 } 133 }
133 134
134 len = p - name; 135 len = p - name;
@@ -151,7 +152,7 @@ static int cryptomgr_schedule_probe(struct crypto_larval *larval)
151 param->tb[i + 1] = &param->attrs[i].attr; 152 param->tb[i + 1] = &param->attrs[i].attr;
152 i++; 153 i++;
153 154
154 if (WARN_ON(i >= CRYPTO_MAX_ATTRS)) 155 if (i >= CRYPTO_MAX_ATTRS)
155 goto err_free_param; 156 goto err_free_param;
156 157
157 if (*p == ')') 158 if (*p == ')')