]> git.kaiwu.me - njs.git/commitdiff
VM: clean up failed AST serialization
authorDmitry Volyntsev <xeioex@nginx.com>
Thu, 3 Sep 2026 15:53:25 +0000 (08:53 -0700)
committerDmitry Volyntsev <xeioexception@gmail.com>
Thu, 10 Sep 2026 03:11:04 +0000 (20:11 -0700)
src/njs_vm.c

index bbb7bb2982c72c12cc5642e5e6f970844d145c8c..bd095269464d23949bf573f62c62fac0a90510c7 100644 (file)
@@ -241,11 +241,13 @@ njs_vm_compile(njs_vm_t *vm, u_char **start, u_char *end)
         NJS_CHB_MP_INIT(&chain, njs_vm_memory_pool(vm));
         ret = njs_parser_serialize_ast(parser.node, &chain);
         if (njs_slow_path(ret == NJS_ERROR)) {
+            njs_chb_destroy(&chain);
             njs_parser_destroy(&parser);
             return ret;
         }
 
         if (njs_slow_path(njs_chb_join(&chain, &ast) != NJS_OK)) {
+            njs_chb_destroy(&chain);
             njs_parser_destroy(&parser);
             return NJS_ERROR;
         }