@@ -134,11 +134,22 @@ test_data_xml(void **state)
134134 "(\\.[0-9]+)?(Z|[\\+\\-]((1[0-3]|0[0-9]):([0-5][0-9])|14:00))?\"." ,
135135 "/a:l" , 1 );
136136
137+ /* invalid value in a dynamic buffer (entity reference) */
138+ TEST_ERROR_XML ("a" , "l" , "2005-05-31T23:15:15&" , LY_EVALID );
139+ CHECK_LOG_CTX ("Unsatisfied pattern - \"2005-05-31T23:15:15&\" does not match "
140+ "\"[0-9]{4}-(1[0-2]|0[1-9])-(0[1-9]|[1-2][0-9]|3[0-1])T(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)"
141+ "(\\.[0-9]+)?(Z|[\\+\\-]((1[0-3]|0[0-9]):([0-5][0-9])|14:00))?\"." ,
142+ "/a:l" , 1 );
143+
137144 /* date */
138145 TEST_SUCCESS_XML ("a" , "l2" , "2005-05-31-01:00" , STRING , "2005-05-30-02:00" );
139146#ifndef _WIN32
140147 TEST_SUCCESS_XML ("a" , "l2" , "1950-01-01-02:00" , STRING , "1950-01-01-02:00" );
141148#endif
149+ TEST_ERROR_XML ("a" , "l2" , "2005-05-31&" , LY_EVALID );
150+ CHECK_LOG_CTX ("Unsatisfied pattern - \"2005-05-31&\" does not match "
151+ "\"[0-9]{4}-(1[0-2]|0[1-9])-(0[1-9]|[1-2][0-9]|3[0-1])(Z|[\\+\\-]((1[0-3]|0[0-9]):([0-5][0-9])|14:00))?\"." ,
152+ "/a:l2" , 1 );
142153
143154 /* date-no-zone */
144155 TEST_SUCCESS_XML ("a" , "l2nz" , "2005-05-31" , STRING , "2005-05-31" );
@@ -149,6 +160,10 @@ test_data_xml(void **state)
149160 /* time */
150161 TEST_SUCCESS_XML ("a" , "l4" , "23:15:15-01:00" , STRING , "22:15:15-02:00" );
151162 TEST_SUCCESS_XML ("a" , "l4" , "00:59:59.001-02:00" , STRING , "00:59:59.001-02:00" );
163+ TEST_ERROR_XML ("a" , "l4" , "23:15:15&" , LY_EVALID );
164+ CHECK_LOG_CTX ("Unsatisfied pattern - \"23:15:15&\" does not match "
165+ "\"(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?(Z|[\\+\\-]((1[0-3]|0[0-9]):([0-5][0-9])|14:00))?\"." ,
166+ "/a:l4" , 1 );
152167
153168 /* time-no-zone */
154169 TEST_SUCCESS_XML ("a" , "l4nz" , "23:15:15" , STRING , "23:15:15" );
0 commit comments