qt5base-lts/tests/auto/corelib/tools
Marc Mutz a54d44298f QLatin1String: Fix UB (nullptr passed) in relational operators
Found by UBSan:

  qstring.h:1160:44: runtime error: null pointer passed as argument 1, which is declared to never be null
  qstring.h:1160:44: runtime error: null pointer passed as argument 2, which is declared to never be null

Fix by avoiding the memcmp() calls if there's a chance that they
might be called with nullptr.

While at it, also implement !=, >, <=, >= in terms of ==, <,
and add a test, because this particular UB was not fingered by
any of the QtCore test cases, but by a Qt3D one.

Change-Id: I413792dcc8431ef14f0c79f26e89a3e9fab69465
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2016-09-15 10:10:28 +00:00
..
collections tst_collections: "explicit instantiation of 'NS::QList' must occur in namespace 'NS'" 2015-12-23 08:35:49 +00:00
qalgorithms Purge extraneous execute permissions. 2015-09-30 18:26:21 +00:00
qarraydata Fix Clang -Wexpansion-to-defined warning by deprecating QT_SUPPORTS 2016-05-08 04:25:27 +00:00
qarraydata_strictiterators Make sure all containers compile in strict-iterator mode 2014-02-22 04:38:01 +01:00
qbitarray Update copyright headers 2015-02-11 06:49:51 +00:00
qbytearray qstrncpy: don't call strncpy_s with invalid parameters 2016-09-03 05:07:54 +00:00
qbytearraylist Update copyright headers 2015-02-11 06:49:51 +00:00
qbytearraymatcher Update copyright headers 2015-02-11 06:49:51 +00:00
qbytedatabuffer Update copyright headers 2015-02-11 06:49:51 +00:00
qcache Update copyright headers 2015-02-11 06:49:51 +00:00
qchar Update Unicode data & algorithms up to v8.0 2015-11-05 08:25:02 +00:00
qcollator Replace MAC OS X with OS X 2015-06-30 07:33:31 +00:00
qcommandlineparser QCommandLineOption: optimize ctors 2015-06-19 16:29:50 +00:00
qcontiguouscache Fix compilation of QContiguousCache::operator= 2015-05-20 17:23:33 +00:00
qcryptographichash Update copyright headers 2015-02-11 06:49:51 +00:00
qdate QDate: fix calculation of the week number for the last days of 2020 2016-01-09 09:13:44 +00:00
qdatetime Remove a mis-placed QSKIP(). 2016-02-26 09:22:35 +00:00
qeasingcurve Remove the tests for Ubuntu Oneiric (11.10) 2015-03-17 01:26:13 +00:00
qelapsedtimer Update copyright headers 2015-02-11 06:49:51 +00:00
qexplicitlyshareddatapointer Update copyright headers 2015-02-11 06:49:51 +00:00
qfreelist Update copyright headers 2015-02-11 06:49:51 +00:00
qhash Fix Clang -Wexpansion-to-defined warning by deprecating QT_SUPPORTS 2016-05-08 04:25:27 +00:00
qhash_strictiterators Make sure all containers compile in strict-iterator mode 2014-02-22 04:38:01 +01:00
qhashfunctions QHashFunctions: test for hash equality of null and empty string types 2016-07-11 20:02:15 +00:00
qlatin1string QLatin1String: Fix UB (nullptr passed) in relational operators 2016-09-15 10:10:28 +00:00
qline Update copyright headers 2015-02-11 06:49:51 +00:00
qlinkedlist Fix Clang -Wexpansion-to-defined warning by deprecating QT_SUPPORTS 2016-05-08 04:25:27 +00:00
qlist Fix Clang -Wexpansion-to-defined warning by deprecating QT_SUPPORTS 2016-05-08 04:25:27 +00:00
qlist_strictiterators Make sure all containers compile in strict-iterator mode 2014-02-22 04:38:01 +01:00
qlocale Cleanup testcase for platforms without QProcess support. 2016-02-09 15:45:17 +00:00
qmap Fix Clang -Wexpansion-to-defined warning by deprecating QT_SUPPORTS 2016-05-08 04:25:27 +00:00
qmap_strictiterators Make sure all containers compile in strict-iterator mode 2014-02-22 04:38:01 +01:00
qmargins Update copyright headers 2015-02-11 06:49:51 +00:00
qmessageauthenticationcode Update copyright headers 2015-02-11 06:49:51 +00:00
qpair QPair: add test for pair of references 2016-07-11 20:02:41 +00:00
qpoint Update copyright headers 2015-02-11 06:49:51 +00:00
qpointf Fix build of tests on QNX. 2015-03-14 07:05:34 +00:00
qqueue Update copyright headers 2015-02-11 06:49:51 +00:00
qrect QRect: fix UB (int overflow) in center() 2016-03-15 11:23:46 +00:00
qregexp Add qHash(QRegExp) and qHash(QRegularExpression) 2015-05-05 13:59:31 +00:00
qregularexpression Merge remote-tracking branch 'origin/5.5' into 5.6 2015-08-26 20:06:57 +02:00
qringbuffer Q_(U)INT64_C is not a type, so don't use it as if it was 2016-07-06 10:34:38 +00:00
qscopedpointer Update copyright headers 2015-02-11 06:49:51 +00:00
qscopedvaluerollback Update copyright headers 2015-02-11 06:49:51 +00:00
qset QLinkedList/QSet: add {const_,}reverse_iterator, {c,}r{begin,end}() 2015-10-13 18:07:20 +00:00
qsharedpointer Merge remote-tracking branch 'origin/5.5' into 5.6 2016-01-19 10:03:01 +01:00
qsize Update copyright headers 2015-02-11 06:49:51 +00:00
qsizef Update copyright headers 2015-02-11 06:49:51 +00:00
qstl Update copyright headers 2015-02-11 06:49:51 +00:00
qstring tst_QString: unit test for broken toLocal8bit() error-handling 2016-08-05 12:57:59 +00:00
qstring_no_cast_from_bytearray Update copyright headers 2015-02-11 06:49:51 +00:00
qstringbuilder tst_QStringBuilder: add a check for self-assignment 2016-04-07 07:02:38 +00:00
qstringiterator Update copyright headers 2015-02-11 06:49:51 +00:00
qstringlist Update copyright headers 2015-02-11 06:49:51 +00:00
qstringmatcher Update copyright headers 2015-02-11 06:49:51 +00:00
qstringref QStringRef: add truncate() 2015-06-19 05:41:41 +00:00
qtextboundaryfinder Update Unicode data files to v8.0 2015-11-05 08:24:58 +00:00
qtime Avoid overflow in QTime::addSecs with too big a number of seconds 2015-08-19 22:13:40 +00:00
qtimeline Improve tst_qtimeline::setPaused resilience 2016-05-04 09:26:57 +00:00
qtimezone Fix parsing of tzfile(5) POSIX rule zone names with bracket quotes 2016-05-24 19:31:40 +00:00
qvarlengtharray Merge remote-tracking branch 'origin/5.5' into HEAD 2015-07-17 16:35:42 +02:00
qvector QVector: fix crash on reserve(0) 2016-07-28 13:50:38 +00:00
qvector_strictiterators Make sure all containers compile in strict-iterator mode 2014-02-22 04:38:01 +01:00
qversionnumber Use correct test to add C++14 to the project configuration 2015-12-01 15:46:31 +00:00
tools.pro QLatin1String: add test 2015-10-19 15:55:21 +00:00