Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nginx/nginx.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2009-11-16 22:11:38 +0300
committerIgor Sysoev <igor@sysoev.ru>2009-11-16 22:11:38 +0300
commit42f5fb19ace6d56d5d49094adca3c1c983b51fa9 (patch)
tree49333b0ed4c882f5cbe46104bab932c0cf3ee5b6
parentd86a0bfed491fbaf75d2268856aa999621b7cdf0 (diff)
evaluate maximum captures size on configuration phase
-rw-r--r--src/http/ngx_http_core_module.c4
-rw-r--r--src/http/ngx_http_variables.c2
2 files changed, 5 insertions, 1 deletions
diff --git a/src/http/ngx_http_core_module.c b/src/http/ngx_http_core_module.c
index 7ae49a686..e6b1162a0 100644
--- a/src/http/ngx_http_core_module.c
+++ b/src/http/ngx_http_core_module.c
@@ -2759,6 +2759,10 @@ ngx_http_core_init_main_conf(ngx_conf_t *cf, void *conf)
cmcf->variables_hash_bucket_size =
ngx_align(cmcf->variables_hash_bucket_size, ngx_cacheline_size);
+ if (cmcf->ncaptures) {
+ cmcf->ncaptures = (cmcf->ncaptures + 1) * 3;
+ }
+
return NGX_CONF_OK;
}
diff --git a/src/http/ngx_http_variables.c b/src/http/ngx_http_variables.c
index 0289a64ac..a2852b0dd 100644
--- a/src/http/ngx_http_variables.c
+++ b/src/http/ngx_http_variables.c
@@ -1759,7 +1759,7 @@ ngx_http_regex_exec(ngx_http_request_t *r, ngx_http_regex_t *re, ngx_str_t *s)
cmcf = ngx_http_get_module_main_conf(r, ngx_http_core_module);
if (re->ncaptures) {
- len = (cmcf->ncaptures + 1) * 3;
+ len = cmcf->ncaptures;
if (r->captures == NULL) {
r->captures = ngx_palloc(r->pool, len * sizeof(int));