--- nginx-1.2.1/src/http/ngx_http_variables.c 2012-03-05 20:36:51.000000000 +0800 +++ nginx-1.2.1-patched/src/http/ngx_http_variables.c 2012-05-17 16:21:42.120968722 +0800 @@ -1898,6 +1898,7 @@ { ngx_int_t rc; ngx_http_variable_t *v; + ngx_http_variable_t *value; ngx_http_core_main_conf_t *cmcf; cmcf = ngx_http_conf_get_module_main_conf(cf, ngx_http_core_module); @@ -1918,7 +1919,14 @@ } for (v = ngx_http_core_variables; v->name.len; v++) { - rc = ngx_hash_add_key(cmcf->variables_keys, &v->name, v, + value = ngx_palloc(cf->pool, sizeof(ngx_http_variable_t)); + if (value == NULL) { + return NGX_ERROR; + } + + *value = *v; + + rc = ngx_hash_add_key(cmcf->variables_keys, &value->name, value, NGX_HASH_READONLY_KEY); if (rc == NGX_OK) {