evaluate maximum captures size on configuration phase
diff --git a/src/http/ngx_http_core_module.c b/src/http/ngx_http_core_module.c
index 7ae49a6..e6b1162 100644
--- a/src/http/ngx_http_core_module.c
+++ b/src/http/ngx_http_core_module.c
@@ -2759,6 +2759,10 @@
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 0289a64..a2852b0 100644
--- a/src/http/ngx_http_variables.c
+++ b/src/http/ngx_http_variables.c
@@ -1759,7 +1759,7 @@
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));