vendor/nginx/src/http/ngx_http_variables.c in nginxtra-1.8.1.12 vs vendor/nginx/src/http/ngx_http_variables.c in nginxtra-1.10.1.12
- old
+ new
@@ -573,64 +573,66 @@
vv = ngx_palloc(r->pool, sizeof(ngx_http_variable_value_t));
if (vv == NULL) {
return NULL;
}
- if (ngx_strncmp(name->data, "http_", 5) == 0) {
+ if (name->len >= 5 && ngx_strncmp(name->data, "http_", 5) == 0) {
if (ngx_http_variable_unknown_header_in(r, vv, (uintptr_t) name)
== NGX_OK)
{
return vv;
}
return NULL;
}
- if (ngx_strncmp(name->data, "sent_http_", 10) == 0) {
+ if (name->len >= 10 && ngx_strncmp(name->data, "sent_http_", 10) == 0) {
if (ngx_http_variable_unknown_header_out(r, vv, (uintptr_t) name)
== NGX_OK)
{
return vv;
}
return NULL;
}
- if (ngx_strncmp(name->data, "upstream_http_", 14) == 0) {
+ if (name->len >= 14 && ngx_strncmp(name->data, "upstream_http_", 14) == 0) {
if (ngx_http_upstream_header_variable(r, vv, (uintptr_t) name)
== NGX_OK)
{
return vv;
}
return NULL;
}
- if (ngx_strncmp(name->data, "cookie_", 7) == 0) {
+ if (name->len >= 7 && ngx_strncmp(name->data, "cookie_", 7) == 0) {
if (ngx_http_variable_cookie(r, vv, (uintptr_t) name) == NGX_OK) {
return vv;
}
return NULL;
}
- if (ngx_strncmp(name->data, "upstream_cookie_", 16) == 0) {
+ if (name->len >= 16
+ && ngx_strncmp(name->data, "upstream_cookie_", 16) == 0)
+ {
if (ngx_http_upstream_cookie_variable(r, vv, (uintptr_t) name)
== NGX_OK)
{
return vv;
}
return NULL;
}
- if (ngx_strncmp(name->data, "arg_", 4) == 0) {
+ if (name->len >= 4 && ngx_strncmp(name->data, "arg_", 4) == 0) {
if (ngx_http_variable_argument(r, vv, (uintptr_t) name) == NGX_OK) {
return vv;
}
@@ -2424,13 +2426,12 @@
{
ngx_http_variable_t *v;
v = cmcf->variables.elts;
- ngx_log_debug3(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
- "http regex set $%V to \"%*s\"",
- &v[index].name, vv->len, vv->data);
+ ngx_log_debug2(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
+ "http regex set $%V to \"%v\"", &v[index].name, vv);
}
#endif
}
r->ncaptures = rc * 2;
@@ -2533,47 +2534,59 @@
goto next;
}
}
- if (ngx_strncmp(v[i].name.data, "http_", 5) == 0) {
+ if (v[i].name.len >= 5
+ && ngx_strncmp(v[i].name.data, "http_", 5) == 0)
+ {
v[i].get_handler = ngx_http_variable_unknown_header_in;
v[i].data = (uintptr_t) &v[i].name;
continue;
}
- if (ngx_strncmp(v[i].name.data, "sent_http_", 10) == 0) {
+ if (v[i].name.len >= 10
+ && ngx_strncmp(v[i].name.data, "sent_http_", 10) == 0)
+ {
v[i].get_handler = ngx_http_variable_unknown_header_out;
v[i].data = (uintptr_t) &v[i].name;
continue;
}
- if (ngx_strncmp(v[i].name.data, "upstream_http_", 14) == 0) {
+ if (v[i].name.len >= 14
+ && ngx_strncmp(v[i].name.data, "upstream_http_", 14) == 0)
+ {
v[i].get_handler = ngx_http_upstream_header_variable;
v[i].data = (uintptr_t) &v[i].name;
v[i].flags = NGX_HTTP_VAR_NOCACHEABLE;
continue;
}
- if (ngx_strncmp(v[i].name.data, "cookie_", 7) == 0) {
+ if (v[i].name.len >= 7
+ && ngx_strncmp(v[i].name.data, "cookie_", 7) == 0)
+ {
v[i].get_handler = ngx_http_variable_cookie;
v[i].data = (uintptr_t) &v[i].name;
continue;
}
- if (ngx_strncmp(v[i].name.data, "upstream_cookie_", 16) == 0) {
+ if (v[i].name.len >= 16
+ && ngx_strncmp(v[i].name.data, "upstream_cookie_", 16) == 0)
+ {
v[i].get_handler = ngx_http_upstream_cookie_variable;
v[i].data = (uintptr_t) &v[i].name;
v[i].flags = NGX_HTTP_VAR_NOCACHEABLE;
continue;
}
- if (ngx_strncmp(v[i].name.data, "arg_", 4) == 0) {
+ if (v[i].name.len >= 4
+ && ngx_strncmp(v[i].name.data, "arg_", 4) == 0)
+ {
v[i].get_handler = ngx_http_variable_argument;
v[i].data = (uintptr_t) &v[i].name;
v[i].flags = NGX_HTTP_VAR_NOCACHEABLE;
continue;