qt6-bb10/tests/auto/corelib/tools
Edward Welbourne c066656aff Avoid read-outside-array error by QStringRef over-reach
Constructing a QStringRef directly from the string, offset and a
length is UB if the offset + length exceeds the string's length.
Thanks to Robert Loehning and libFuzzer for finding this.
QString::midRef (as correctly used in both changed uses of QStringRef,
since 432d3b6962) takes care of that for us.  Changed one UB case and
a matching but correct case, for consistency.

In the process, deduplicate a QStringList look-up.
Added tests to exercise the code (but the one that exercises the
formerly UB case doesn't crash before the fix, so isn't very useful;
the invalid read is only outside the array it's scanning, not outside
allocated memory).

Change-Id: I7051bbbc0267dd7ec0a8f75eee2034d0b7eb75a2
Reviewed-by: Anton Kudryavtsev <antkudr@mail.ru>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2019-02-08 13:56:25 +00:00
..
collections implement non-member operator+ for iterators 2018-03-06 22:04:37 +00:00
containerapisymmetry
qalgorithms Change almost all other uses of qrand() to QRandomGenerator 2017-11-08 09:14:03 +00:00
qarraydata
qarraydata_strictiterators
qbitarray
qbytearray QByteArray: toInt() and toDouble() ignore surrounding whitespaces 2018-07-07 19:58:18 +00:00
qbytearraylist
qbytearraymatcher
qbytedatabuffer
qcache
qchar Merge remote-tracking branch 'origin/5.9' into 5.11 2018-02-14 12:51:24 +01:00
qcollator Handle QCollator with locale C by delegating to QString 2018-12-11 19:05:07 +00:00
qcommandlineparser Merge remote-tracking branch 'origin/5.11' into 5.12 2018-09-30 01:00:19 +02:00
qcontiguouscache
qcryptographichash QCryptographicHash: Add a static method to retrieve hash length 2018-04-10 12:17:43 +00:00
qdate Raise the upper bound on years to 9999 2017-11-30 20:19:13 +00:00
qdatetime Avoid read-outside-array error by QStringRef over-reach 2019-02-08 13:56:25 +00:00
qeasingcurve MinGW: Exclude failing value of tst_QEasingCurve::setCustomType() 2018-08-21 07:12:19 +00:00
qexplicitlyshareddatapointer Add nullptr comparison to Q{Explicitly,}SharedDataPointer 2018-03-18 17:28:26 +00:00
qfreelist
qhash Merge remote-tracking branch 'origin/5.9' into dev 2017-05-07 13:08:18 +02:00
qhash_strictiterators
qhashfunctions
qlatin1string Replace Q_NULLPTR with nullptr where possible 2017-09-19 11:53:55 +00:00
qline Tests: Fix clang warnings about unused variables and captures 2018-05-02 09:36:00 +00:00
qlinkedlist
qlist
qlist_strictiterators
qlocale Merge remote-tracking branch 'origin/5.11' into 5.12 2018-11-27 01:00:09 +01:00
qmacautoreleasepool Add missing dependencies for tst_qmacautoreleasepool 2018-08-29 02:47:45 +00:00
qmakearray corelib/tools: add qMakeArray() API 2018-07-25 06:57:44 +00:00
qmap
qmap_strictiterators
qmargins
qmessageauthenticationcode
qpair
qpoint
qpointf Fix regression in QPointF::operator== 2018-07-09 15:38:31 +00:00
qqueue
qrect Improve rounding of QRect::toRect 2017-06-26 21:35:38 +00:00
qregexp
qregularexpression QRegularExpression: anchor wildcard pattern 2018-12-15 13:24:16 +00:00
qringbuffer QRingBuffer: avoid reallocations of the data 2017-12-30 10:15:10 +00:00
qscopedpointer QScopedPointer: add get() 2017-09-17 11:42:26 +00:00
qscopedvaluerollback
qscopeguard Introduce QScopeGuard 2018-07-21 17:47:35 +00:00
qset
qsharedpointer tst_QSharedPointer: raise the timeout for running qmake and makespec 2018-08-04 23:26:24 +00:00
qsize
qsizef
qstl
qstring Use RAII to handle setting of default locale in tst_QString 2019-01-22 16:42:29 +00:00
qstring_no_cast_from_bytearray
qstringapisymmetry qstringapisymmetry: Fix XML parsing failing on invalid encodings 2018-03-02 07:59:12 +00:00
qstringbuilder QStringBuilder: add support for QStringView 2018-01-08 09:41:43 +00:00
qstringiterator
qstringlist QStringList: add contains(QStringView) overload 2018-09-03 08:55:52 +00:00
qstringmatcher
qstringref Remove references to obsolete platforms 2017-11-05 06:33:53 +00:00
qstringview QStringView: Add compare() member function 2018-07-13 13:32:34 +00:00
qtextboundaryfinder Merge remote-tracking branch 'origin/5.9' into 5.11 2018-02-14 12:51:24 +01:00
qtime Raise the upper bound on years to 9999 2017-11-30 20:19:13 +00:00
qtimeline Extend blacklisting of qtimeline::frameRate to macOS 10.13 2018-09-24 21:13:00 +00:00
qtimezone Avoid test failures in tst_qtimezone.cpp and Windows 10 1809 2019-01-28 15:02:52 +00:00
qvarlengtharray fixup oversight in rvalue overloads of operator+=() and operator<<() 2018-03-26 14:29:47 +00:00
qvector fixup oversight in rvalue overloads of operator+=() and operator<<() 2018-03-26 14:29:47 +00:00
qvector_strictiterators
qversionnumber Tests: Raise minimum supported MSVC version to 2015 2018-01-04 20:23:25 +00:00
tools.pro corelib/tools: add qMakeArray() API 2018-07-25 06:57:44 +00:00