[njs] Fixed default module loader.

Dmitry Volyntsev xeioex at nginx.com
Mon Nov 7 22:23:44 UTC 2022


details:   https://hg.nginx.org/njs/rev/fa59bcc82142
branches:  
changeset: 1990:fa59bcc82142
user:      Dmitry Volyntsev <xeioex at nginx.com>
date:      Mon Nov 07 14:22:41 2022 -0800
description:
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.

diffstat:

 src/njs_module.c |  7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

diffs (27 lines):

diff -r 94b370d9aa13 -r fa59bcc82142 src/njs_module.c
--- a/src/njs_module.c	Mon Nov 07 14:22:41 2022 -0800
+++ b/src/njs_module.c	Mon Nov 07 14:22:41 2022 -0800
@@ -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_mod_t          *module;
     njs_parser_t       *prev;
-    njs_mod_t          *module;
     njs_module_info_t  info;
 
     prev = external;
@@ -388,7 +389,9 @@ njs_default_module_loader(njs_vm_t *vm, 
         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);



More information about the nginx-devel mailing list