]> git.kaiwu.me - njs.git/commitdiff
Modules: fixed memory leak when module loading failed.
authorDmitry Volyntsev <xeioex@nginx.com>
Thu, 2 Oct 2025 03:23:08 +0000 (20:23 -0700)
committerDmitry Volyntsev <xeioexception@gmail.com>
Thu, 2 Oct 2025 22:18:43 +0000 (15:18 -0700)
nginx/ngx_js.c

index 053c23c20da74cef9e18d371c3f5b89a0b2ad8db..7d2522bbf8d528147725e41f5e1fd93b1888228c 100644 (file)
@@ -571,6 +571,7 @@ ngx_engine_njs_init(ngx_engine_t *engine, ngx_engine_opts_t *opts)
 
     rc = ngx_js_set_cwd(njs_vm_memory_pool(vm), opts->conf, &vm_options.file);
     if (rc != NGX_OK) {
+        njs_vm_destroy(vm);
         return NGX_ERROR;
     }
 
@@ -665,6 +666,7 @@ ngx_njs_clone(ngx_js_ctx_t *ctx, ngx_js_loc_conf_t *cf, void *external)
 
     engine = njs_mp_alloc(njs_vm_memory_pool(vm), sizeof(ngx_engine_t));
     if (engine == NULL) {
+        njs_vm_destroy(vm);
         return NULL;
     }
 
@@ -677,6 +679,8 @@ ngx_njs_clone(ngx_js_ctx_t *ctx, ngx_js_loc_conf_t *cf, void *external)
 
         ngx_log_error(NGX_LOG_ERR, ctx->log, 0, "js exception: %V", &exception);
 
+        njs_vm_destroy(vm);
+
         return NULL;
     }