]> git.kaiwu.me - njs.git/commitdiff
XML: fixed exception handling.
authorDmitry Volyntsev <xeioex@nginx.com>
Wed, 4 Oct 2023 22:00:02 +0000 (15:00 -0700)
committerDmitry Volyntsev <xeioex@nginx.com>
Wed, 4 Oct 2023 22:00:02 +0000 (15:00 -0700)
This closes #675 issue on Github.

external/njs_xml_module.c
src/test/njs_unit_test.c

index 2b3745013cf2009c5c32efe7a720452e34dc9620..ae440632c2d971da35285ead09f7d245efd0a04d 100644 (file)
@@ -2000,7 +2000,7 @@ njs_xml_error(njs_vm_t *vm, njs_xml_doc_t *current, const char *fmt, ...)
                         err->int2);
     }
 
-    njs_vm_error(vm, "%s", p - errstr, errstr);
+    njs_vm_error(vm, "%*s", p - errstr, errstr);
 }
 
 
index 1078f76374c57a7ee9658dff5100c968963079ed..1854120466836ff667215d324cbe15d83fb42a88 100644 (file)
@@ -22034,6 +22034,10 @@ static njs_unit_test_t  njs_xml_test[] =
               " doc.root.$tags$.length]"),
       njs_str("FOO,BAR,0,2") },
 
+    { njs_str("const xml = require('xml');"
+              "let doc = xml.parse(`GARBAGE`)"),
+      njs_str("Error: failed to parse XML (libxml2: \"Start tag expected, '<' not found\" at 1:1)") },
+
     { njs_str("const xml = require('xml');"
               "let doc = xml.parse(`<r><a></a>TEXT</r>`);"
               "doc.r.$text"),