Fix bug with non-NUL-terminaed inputs in wxMBConvUTF8.
We read beyond the provided maximal length as we didn't update the remaining length while parsing the remaining bytes of an UTF-8-encoded code point. Fix this and add a test for it. Closes #15901. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75733 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -352,6 +352,13 @@ void UnicodeTestCase::ConversionUTF8()
|
||||
d.Test(n, conv);
|
||||
d.Test(n, wxConvUTF8);
|
||||
}
|
||||
|
||||
static const char* const u25a6 = "\xe2\x96\xa6";
|
||||
wxMBConvUTF8 c(wxMBConvUTF8::MAP_INVALID_UTF8_TO_OCTAL);
|
||||
CPPUNIT_ASSERT_EQUAL( 2, c.ToWChar(NULL, 0, u25a6, wxNO_LEN) );
|
||||
CPPUNIT_ASSERT_EQUAL( 0, c.ToWChar(NULL, 0, u25a6, 0) );
|
||||
CPPUNIT_ASSERT_EQUAL( 1, c.ToWChar(NULL, 0, u25a6, 3) );
|
||||
CPPUNIT_ASSERT_EQUAL( 2, c.ToWChar(NULL, 0, u25a6, 4) );
|
||||
}
|
||||
|
||||
void UnicodeTestCase::ConversionUTF16()
|
||||
|
Reference in New Issue
Block a user