diff options
author | Stefan Fritsch <sf@apache.org> | 2011-11-19 22:58:48 +0100 |
---|---|---|
committer | Stefan Fritsch <sf@apache.org> | 2011-11-19 22:58:48 +0100 |
commit | 92663b1e32722d89c3255920625329f58b3cdb78 (patch) | |
tree | d21f70945d7827f9adeabbdd696e2666f14dc6e4 /server/util_expr_parse.c | |
parent | Update. (diff) | |
download | apache2-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.c | 4 |
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 }; |