From 93c5c6050d6a086f562e7d8d79ac19bb0b8e9005 Mon Sep 17 00:00:00 2001 From: ntrifunovic Date: Wed, 19 Jul 2006 12:37:31 +0000 Subject: [PATCH] Added regression test case for bug 1525236 : utf8::is_valid does not detect overlong sequences git-svn-id: http://svn.code.sf.net/p/utfcpp/code@12 a809a056-fc17-0410-9590-b4f493f8b08e --- .../regression_tests/r1_0Beta1/invalidutf8.h | 15 ++++++++++++++- .../regression_tests/reg_tests_driver.cpp | 2 +- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/test_drivers/regression_tests/r1_0Beta1/invalidutf8.h b/test_drivers/regression_tests/r1_0Beta1/invalidutf8.h index 363db23..a37025f 100644 --- a/test_drivers/regression_tests/r1_0Beta1/invalidutf8.h +++ b/test_drivers/regression_tests/r1_0Beta1/invalidutf8.h @@ -51,10 +51,23 @@ check (!is_valid(udbff_dc00, udbff_dc00 + 6)); unsigned char udbff_dfff[] = {0xed, 0xaf, 0xbf, 0xed, 0xbf, 0xbf}; check (!is_valid(udbff_dfff, udbff_dfff + 6)); -// Other illegal code positions +// Other illegal code points unsigned char ufffe[] = {0xef, 0xbf, 0xbe}; check (!is_valid(ufffe, ufffe + 3)); unsigned char uffff[] = {0xef, 0xbf, 0xbf}; check (!is_valid(uffff, uffff + 3)); } + +// [ 1525236 ] utf8::is_valid does not detect overlong sequences +void id_1525236 () +{ +unsigned char u2f_2bytes[] = {0xc0, 0xaf}; +check (!is_valid(u2f_2bytes, u2f_2bytes + 2)); + +unsigned char u2f_3bytes[] = {0xe0, 0x80, 0xaf}; +check (!is_valid(u2f_3bytes, u2f_3bytes + 3)); + +unsigned char u2f_4bytes[] = {0xf0, 0x80, 0x80, 0xaf}; +check (!is_valid(u2f_4bytes, u2f_4bytes + 4)); +} diff --git a/test_drivers/regression_tests/reg_tests_driver.cpp b/test_drivers/regression_tests/reg_tests_driver.cpp index 1d0047e..4493234 100644 --- a/test_drivers/regression_tests/reg_tests_driver.cpp +++ b/test_drivers/regression_tests/reg_tests_driver.cpp @@ -16,5 +16,5 @@ int main() { //r1_0Beta1/invalidutf8.h id_1524459(); - + id_1525236(); }