fix segfault if no http section is defined in confguraiton,
the bug has been introduced in r1259
diff --git a/src/http/modules/perl/ngx_http_perl_module.c b/src/http/modules/perl/ngx_http_perl_module.c
index bad2454..833e90f 100644
--- a/src/http/modules/perl/ngx_http_perl_module.c
+++ b/src/http/modules/perl/ngx_http_perl_module.c
@@ -1041,15 +1041,13 @@
pmcf = ngx_http_cycle_get_module_main_conf(cycle, ngx_http_perl_module);
- {
+ if (pmcf) {
+ dTHXa(pmcf->perl);
+ PERL_SET_CONTEXT(pmcf->perl);
- dTHXa(pmcf->perl);
- PERL_SET_CONTEXT(pmcf->perl);
+ /* set worker's $$ */
- /* set worker's $$ */
-
- sv_setiv(GvSV(gv_fetchpv("$", TRUE, SVt_PV)), (I32) ngx_pid);
-
+ sv_setiv(GvSV(gv_fetchpv("$", TRUE, SVt_PV)), (I32) ngx_pid);
}
return NGX_OK;
diff --git a/src/http/ngx_http_config.h b/src/http/ngx_http_config.h
index 6629210..74f6f6c 100644
--- a/src/http/ngx_http_config.h
+++ b/src/http/ngx_http_config.h
@@ -69,8 +69,10 @@
((ngx_http_conf_ctx_t *) cf->ctx)->loc_conf[module.ctx_index]
#define ngx_http_cycle_get_module_main_conf(cycle, module) \
- ((ngx_http_conf_ctx_t *) \
- cycle->conf_ctx[ngx_http_module.index])->main_conf[module.ctx_index]
+ (cycle->conf_ctx[ngx_http_module.index] ? \
+ ((ngx_http_conf_ctx_t *) cycle->conf_ctx[ngx_http_module.index]) \
+ ->main_conf[module.ctx_index]: \
+ NULL)
#endif /* _NGX_HTTP_CONFIG_H_INCLUDED_ */