Mercurial > hg > nginx-quic
changeset 1165:efb7d84db340
fix segfault when
*) perl was built without multiplicity
*) when configuration was invalid
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Wed, 18 Apr 2007 11:28:11 +0000 |
parents | d201e0461c3c |
children | bde5e4134759 |
files | src/core/ngx_cycle.c src/http/modules/perl/ngx_http_perl_module.c |
diffstat | 2 files changed, 14 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/src/core/ngx_cycle.c +++ b/src/core/ngx_cycle.c @@ -54,11 +54,8 @@ ngx_init_cycle(ngx_cycle_t *old_cycle) ngx_list_part_t *part, *opart; ngx_open_file_t *file; ngx_listening_t *ls, *nls; - ngx_core_conf_t *ccf; + ngx_core_conf_t *ccf, *old_ccf; ngx_core_module_t *module; -#if !(WIN32) - ngx_core_conf_t *old_ccf; -#endif log = old_cycle->log; @@ -747,6 +744,14 @@ old_shm_zone_done: failed: + if (!ngx_is_init_cycle(old_cycle)) { + old_ccf = (ngx_core_conf_t *) ngx_get_conf(old_cycle->conf_ctx, + ngx_core_module); + if (old_ccf->environment) { + environ = old_ccf->environment; + } + } + /* rollback the new cycle configuration */ part = &cycle->open_files.part;
--- a/src/http/modules/perl/ngx_http_perl_module.c +++ b/src/http/modules/perl/ngx_http_perl_module.c @@ -459,6 +459,11 @@ ngx_http_perl_init_interpreter(ngx_conf_ #if !(NGX_HAVE_PERL_MULTIPLICITY) if (perl) { + + if (ngx_set_environment(cf->cycle, NULL) == NULL) { + return NGX_CONF_ERROR; + } + if (ngx_http_perl_run_requires(aTHX_ &pmcf->requires, cf->log) != NGX_OK) {