QUrl stringprep: fix handling of U+0080: it's prohibited
Edge case: a > that should have been >=. Without it, we never ran the rest of the IDN nameprepping. Change-Id: I2276d660de3a70d0c561bb18816820d9a0f47e77 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
This commit is contained in:
parent
53388cd8e0
commit
4d93393a6d
@ -2029,7 +2029,7 @@ Q_AUTOTEST_EXPORT void qt_nameprep(QString *source, int from)
|
||||
|
||||
for ( ; out < e; ++out) {
|
||||
register ushort uc = out->unicode();
|
||||
if (uc > 0x80) {
|
||||
if (uc >= 0x80) {
|
||||
break;
|
||||
} else if (uc >= 'A' && uc <= 'Z') {
|
||||
*out = QChar(uc | 0x20);
|
||||
|
@ -375,6 +375,11 @@ void tst_QUrlInternal::nameprep_testsuite_data()
|
||||
<< QString::fromUtf8("\x10\x7F")
|
||||
<< QString() << 0 << 0;
|
||||
|
||||
QTest::newRow("Non-ASCII 8bit control character U+0080")
|
||||
<< QString::fromUtf8("x\xC2\x80x")
|
||||
<< QString()
|
||||
<< QString("Nameprep") << 0 << STRINGPREP_CONTAINS_PROHIBITED;
|
||||
|
||||
QTest::newRow("Non-ASCII 8bit control character U+0085")
|
||||
<< QString::fromUtf8("x\xC2\x85x")
|
||||
<< QString()
|
||||
|
Loading…
Reference in New Issue
Block a user