diff options
Diffstat (limited to 'src/core/ngx_cycle.c')
| -rw-r--r-- | src/core/ngx_cycle.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/core/ngx_cycle.c b/src/core/ngx_cycle.c index fbfc9c676..cd9efbee7 100644 --- a/src/core/ngx_cycle.c +++ b/src/core/ngx_cycle.c @@ -255,11 +255,13 @@ ngx_init_cycle(ngx_cycle_t *old_cycle) #endif if (ngx_conf_param(&conf) != NGX_CONF_OK) { + environ = senv; ngx_destroy_cycle_pools(&conf); return NULL; } if (ngx_conf_parse(&conf, &cycle->conf_file) != NGX_CONF_OK) { + environ = senv; ngx_destroy_cycle_pools(&conf); return NULL; } @@ -280,6 +282,7 @@ ngx_init_cycle(ngx_cycle_t *old_cycle) if (module->init_conf(cycle, cycle->conf_ctx[ngx_modules[i]->index]) == NGX_CONF_ERROR) { + environ = senv; ngx_destroy_cycle_pools(&conf); return NULL; } @@ -698,8 +701,8 @@ old_shm_zone_done: if (ngx_process == NGX_PROCESS_MASTER || ngx_is_init_cycle(old_cycle)) { /* - * perl_destruct() frees environ if it is not the same as it was at - * perl_construct() time. So we have saved an previous cycle + * perl_destruct() frees environ, if it is not the same as it was at + * perl_construct() time, therefore we save the previous cycle * environment before ngx_conf_parse() where it will be changed. */ |
