]> granicus.if.org Git - libexpat/commitdiff
Test invalid character in default attribute is rejected
authorRhodri James <rhodri@kynesim.co.uk>
Fri, 17 Mar 2017 17:44:23 +0000 (17:44 +0000)
committerSebastian Pipping <sebastian@pipping.org>
Sat, 22 Jul 2017 20:49:14 +0000 (22:49 +0200)
expat/tests/runtests.c

index 397f1c438e041f447a3cdad4e1a5c4a4e7a7054d..c7b110b231cc3d989ed5977ca709a69d46b52761 100644 (file)
@@ -4758,6 +4758,18 @@ START_TEST(test_restart_on_error)
 }
 END_TEST
 
+/* Test that angle brackets in an attribute default value are faulted */
+START_TEST(test_reject_lt_in_attribute_value)
+{
+    const char *text =
+        "<!DOCTYPE doc [<!ATTLIST doc a CDATA '<bar>'>]>\n"
+        "<doc></doc>";
+
+    expect_failure(text, XML_ERROR_INVALID_TOKEN,
+                   "Bad attribute default not faulted");
+}
+END_TEST
+
 
 /*
  * Namespaces tests.
@@ -7347,7 +7359,6 @@ START_TEST(test_alloc_realloc_long_attribute_value)
 #undef MAX_REALLOC_COUNT
 END_TEST
 
-
 static void
 nsalloc_setup(void)
 {
@@ -8072,6 +8083,7 @@ make_suite(void)
     tcase_add_test(tc_basic, test_resume_entity_with_syntax_error);
     tcase_add_test(tc_basic, test_suspend_resume_parameter_entity);
     tcase_add_test(tc_basic, test_restart_on_error);
+    tcase_add_test(tc_basic, test_reject_lt_in_attribute_value);
 
     suite_add_tcase(s, tc_namespace);
     tcase_add_checked_fixture(tc_namespace,