From 02b80ea2cc7bc8b0dfd72da290072b5528e50c0c Mon Sep 17 00:00:00 2001 From: Dmitry Volyntsev Date: Mon, 7 Nov 2022 14:22:41 -0800 Subject: [PATCH] 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. --- src/njs_module.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) 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); -- 2.47.3