From: Dmitry Volyntsev Date: Mon, 7 Nov 2022 22:22:41 +0000 (-0800) Subject: Fixed default module loader. X-Git-Url: http://www.kaiwu.me/postgresql/commit/?a=commitdiff_plain;h=02b80ea2cc7bc8b0dfd72da290072b5528e50c0c;p=njs.git Fixed default module loader. Previously, njs_mp_free() was called with invalid pointer because njs_vm_compile_module() shifts start argument to the last reading position. This closes #601 issue on Github. --- diff --git a/src/njs_module.c b/src/njs_module.c index 78206b3b..7af75ac7 100644 --- a/src/njs_module.c +++ b/src/njs_module.c @@ -361,10 +361,11 @@ static njs_mod_t * njs_default_module_loader(njs_vm_t *vm, njs_external_ptr_t external, njs_str_t *name) { + u_char *start; njs_int_t ret; njs_str_t cwd, text; - njs_parser_t *prev; njs_mod_t *module; + njs_parser_t *prev; njs_module_info_t info; prev = external; @@ -388,7 +389,9 @@ njs_default_module_loader(njs_vm_t *vm, njs_external_ptr_t external, return NULL; } - module = njs_vm_compile_module(vm, &info.file, &text.start, + start = text.start; + + module = njs_vm_compile_module(vm, &info.file, &start, &text.start[text.length]); njs_mp_free(vm->mem_pool, text.start);