QByteArray::assign: Don't crash when passed an empty range
Pick-to: 6.7 Change-Id: I712725a1bc8c6efb97969676673ac7ca01ef3ee2 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from commit c0afb1ae836b779fbf0b0b60b7c55517e2e2f00f) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
ce99ae49b9
commit
6abe7d05a1
@ -308,7 +308,8 @@ public:
|
||||
QByteArray &assign(InputIterator first, InputIterator last)
|
||||
{
|
||||
d.assign(first, last);
|
||||
d.data()[d.size] = '\0';
|
||||
if (d.data())
|
||||
d.data()[d.size] = '\0';
|
||||
return *this;
|
||||
}
|
||||
|
||||
|
@ -1017,6 +1017,11 @@ void tst_QByteArray::assign()
|
||||
QByteArrayView test;
|
||||
|
||||
QList<char> l = {'\0', 'T', 'E', 'S', 'T'};
|
||||
|
||||
ba.assign(l.begin(), l.begin());
|
||||
QVERIFY(ba.isEmpty());
|
||||
QCOMPARE(*ba.constData(), '\0');
|
||||
|
||||
ba.assign(l.begin(), l.end());
|
||||
test = "\0TEST"_ba;
|
||||
QCOMPARE(ba, test);
|
||||
@ -1033,6 +1038,10 @@ void tst_QByteArray::assign()
|
||||
test = "T\0ST"_ba;
|
||||
QCOMPARE(ba, test);
|
||||
QCOMPARE(ba.size(), test.size());
|
||||
|
||||
ba.assign(l.begin(), l.begin());
|
||||
QVERIFY(ba.isEmpty());
|
||||
QCOMPARE(*ba.constData(), '\0');
|
||||
}
|
||||
// Test chaining
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user