From d14ba8e58c258364a7256690c2fa98efd8d68372 Mon Sep 17 00:00:00 2001 From: Rhodri James Date: Thu, 15 Jun 2017 14:06:25 +0100 Subject: [PATCH] Test non-ASCII characters in entity names Use UTF-16 character with value > 0x00ff for extra code coverage --- expat/tests/runtests.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/expat/tests/runtests.c b/expat/tests/runtests.c index 65d0a82c..ed3f3915 100644 --- a/expat/tests/runtests.c +++ b/expat/tests/runtests.c @@ -5240,6 +5240,29 @@ START_TEST(test_invalid_character_entity_2) } END_TEST +START_TEST(test_invalid_character_entity_3) +{ + const char text[] = + /* \n */ + "\0<\0!\0E\0N\0T\0I\0T\0Y\0 \0e\0n\0t\0i\0t\0y\0 " + "\0'\0&\x0e\x04\x0e\x08\0;\0'\0>\0\n" + /* ]>\n */ + "\0]\0>\0\n" + /* &entity; */ + "\0<\0d\0o\0c\0>\0&\0e\0n\0t\0i\0t\0y\0;\0<\0/\0d\0o\0c\0>"; + + if (_XML_Parse_SINGLE_BYTES(parser, text, sizeof(text)-1, + XML_TRUE) != XML_STATUS_ERROR) + fail("Invalid start of entity name not faulted"); + if (XML_GetErrorCode(parser) != XML_ERROR_UNDEFINED_ENTITY) + xml_failure(parser); +} +END_TEST + /* Test that processing instructions are picked up by a default handler */ START_TEST(test_pi_handled_in_default) { @@ -11340,6 +11363,7 @@ make_suite(void) tcase_add_test(tc_basic, test_param_entity_with_trailing_cr); tcase_add_test(tc_basic, test_invalid_character_entity); tcase_add_test(tc_basic, test_invalid_character_entity_2); + tcase_add_test(tc_basic, test_invalid_character_entity_3); tcase_add_test(tc_basic, test_pi_handled_in_default); tcase_add_test(tc_basic, test_comment_handled_in_default); tcase_add_test(tc_basic, test_pi_yml); -- 2.49.0