summaryrefslogtreecommitdiffstats
path: root/server/util_expr_parse.c
diff options
context:
space:
mode:
authorStefan Fritsch <sf@apache.org>2011-11-19 22:58:48 +0100
committerStefan Fritsch <sf@apache.org>2011-11-19 22:58:48 +0100
commit92663b1e32722d89c3255920625329f58b3cdb78 (patch)
treed21f70945d7827f9adeabbdd696e2666f14dc6e4 /server/util_expr_parse.c
parentUpdate. (diff)
downloadapache2-92663b1e32722d89c3255920625329f58b3cdb78.tar.xz
apache2-92663b1e32722d89c3255920625329f58b3cdb78.zip
Limit recursion in ap_expr evaluation to avoid unbounded stack usage
* evaluate chains of ||, &&, and string concatenation non-recursively * limit other types of recursion to 20 levels * avoid some string copies if concatenating more than 2 strings git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1204087 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'server/util_expr_parse.c')
-rw-r--r--server/util_expr_parse.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/server/util_expr_parse.c b/server/util_expr_parse.c
index 80f47374e4..bcf0173b73 100644
--- a/server/util_expr_parse.c
+++ b/server/util_expr_parse.c
@@ -591,9 +591,9 @@ static const yytype_int8 yypact[] =
25, -35, 79, -17, -35, -8, 60, 60, 43, 43,
43, 43, 43, 43, 43, 5, 5, 0, 43, 43,
43, 43, 43, 43, 43, -35, -27, -35, -35, 73,
- -35, 3, -35, 25, 25, 25, 25, 25, 25, 25,
+ -35, 86, 3, 25, 25, 25, 25, 25, 25, 25,
-35, -35, -35, -35, 23, 43, -35, -35, 25, 25,
- 25, 25, 25, 25, -35, -35, 106, 43, 85, 25,
+ 25, 25, 25, 25, 25, -35, 106, 43, 85, 25,
-35, -21, -35, 43, -35, 25
};