1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
From: Datong Sun <dndx@idndx.com>
Date: Wed Jul 18 16:21:09 2018 -0700
Origin: https://github.com/openresty/lua-nginx-module/commit/e94f2e5d64daa45ff396e262d8dab8e56f5f10e0
Subject: fixed segfault in NGINX core >= 1.15.0 when init_worker_by_lua* is
used.
Signed-off-by: Yichun Zhang (agentzh) <agentzh@gmail.com>
diff --git a/src/ngx_http_lua_initworkerby.c b/src/ngx_http_lua_initworkerby.c
index 4a722a06..2a82fcb9 100644
--- a/src/ngx_http_lua_initworkerby.c
+++ b/src/ngx_http_lua_initworkerby.c
@@ -25,6 +25,7 @@ ngx_http_lua_init_worker(ngx_cycle_t *cycle)
void *cur, *prev;
ngx_uint_t i;
ngx_conf_t conf;
+ ngx_conf_file_t cf_file;
ngx_cycle_t *fake_cycle;
ngx_module_t **modules;
ngx_open_file_t *file, *ofile;
@@ -166,6 +167,10 @@ ngx_http_lua_init_worker(ngx_cycle_t *cycle)
conf.pool = fake_cycle->pool;
conf.log = cycle->log;
+ ngx_memzero(&cf_file, sizeof(cf_file));
+ cf_file.file.name = cycle->conf_file;
+ conf.conf_file = &cf_file;
+
http_ctx.loc_conf = ngx_pcalloc(conf.pool,
sizeof(void *) * ngx_http_max_module);
if (http_ctx.loc_conf == NULL) {
|