Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-85357

Heap use after free in tst_qsqlquery.cpp

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: P1: Critical
    • Resolution: Done
    • Affects Version/s: 6.0 (Next Major Release)
    • Fix Version/s: None
    • Labels:
    • Environment:
      macOS 10.15

      Description

      EDITED reason:
      Looks like it wasn't the /usr/local macOS change that caused the issue, but rather the following pthread change
      https://codereview.qt-project.org/c/qt/qtbase/+/304692

      Here's the integration and log to confirm that this is the first time the tests crashed there
      https://testresults.qt.io/coin/integration/qt/qtbase/tasks/1593366221
      https://testresults.qt.io/coin/logview/qt/qtbase/18fac208110050de939943252c070ac4a290f0bb/MacOSMacOS_10_14x86_64MacOSMacOS_10_14x86_64Clangqtci-macos-10.14-x86_64-e8b6b0/34668971d2d9e9cbddb47daae377543256369672/test_1593366309

      OLD considered reason:
      Due to https://codereview.qt-project.org/c/qt/qtbase/+/305773 , the sql libs installed in /usr/local/lib on macOS are not picked up anymore, which in turn makes tst_sqlquery use a QSqlNullDriver, which perhaps was not tested in Coin for a long time, because Coin Qt configurations always use a proper Sql driver.

      This causes crash in Coin. It's semi reproducible locally as well.

      My suspicion is that this globally created object is the problem, in tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp :36
      https://code.qt.io/cgit/qt/qtbase.git/tree/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp#n36

      const QString qtest(qTableName("qtest", __FILE__, QSqlDatabase()));
      

      Here's the ASAN data.

      /Volumes/T3/Dev/qt/qt5_cmake/qtbase_built_developer/standalone/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery "-o" "tst_qsqlquery.xml,xml" "-o" "-,txt"
      ********* Start testing of tst_QSqlQuery *********
      Config: Using QtTest library 6.0.0, Qt 6.0.0 (x86_64-little_endian-lp64 shared (dynamic) debug build; by Clang 11.0.0 (clang-1100.0.33.17) (Apple))
      QDEBUG : tst_QSqlQuery::initTestCase() Opening: "0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db"
      PASS   : tst_QSqlQuery::initTestCase()
      PASS   : tst_QSqlQuery::value(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db)
      PASS   : tst_QSqlQuery::isValid(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db)
      PASS   : tst_QSqlQuery::isActive(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db)
      PASS   : tst_QSqlQuery::isSelect(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db)
      QDEBUG : tst_QSqlQuery::numRowsAffected(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db) Expected numRowsAffected to be -1, 0 or 5, got 1
      PASS   : tst_QSqlQuery::numRowsAffected(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db)
      PASS   : tst_QSqlQuery::size(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db)
      QWARN  : tst_QSqlQuery::isNull(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db) QSqlQuery::isNull: unknown field name 'unknown'
      PASS   : tst_QSqlQuery::isNull(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db)
      PASS   : tst_QSqlQuery::query_exec(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db)
      PASS   : tst_QSqlQuery::execErrorRecovery(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db)
      PASS   : tst_QSqlQuery::first(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db)
      PASS   : tst_QSqlQuery::next(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db)
      PASS   : tst_QSqlQuery::prev(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db)
      PASS   : tst_QSqlQuery::last(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db)
      PASS   : tst_QSqlQuery::seek(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db)
      SKIP   : tst_QSqlQuery::transaction(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db) only tested manually by trained staff
         Loc: [/Volumes/T3/Dev/qt/qt5_cmake/qtbase/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp(1912)]
      PASS   : tst_QSqlQuery::record(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db)
      PASS   : tst_QSqlQuery::record_sqlite(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db)
      PASS   : tst_QSqlQuery::finish(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db)
      PASS   : tst_QSqlQuery::sqlite_finish(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db)
      SKIP   : tst_QSqlQuery::nextResult(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db) DBMS does not support multiple result sets
         Loc: [/Volumes/T3/Dev/qt/qt5_cmake/qtbase/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp(3050)]
      PASS   : tst_QSqlQuery::forwardOnly(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db)
      SKIP   : tst_QSqlQuery::forwardOnlyMultipleResultSet(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db) DBMS doesn't support multiple result sets
         Loc: [/Volumes/T3/Dev/qt/qt5_cmake/qtbase/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp(1519)]
      SKIP   : tst_QSqlQuery::psql_forwardOnlyQueryResultsLost() No database drivers of type QPSQL are available in this Qt configuration
         Loc: [/Volumes/T3/Dev/qt/qt5_cmake/qtbase/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp(337)]
      SKIP   : tst_QSqlQuery::tds_bitField() No database drivers of type QTDS are available in this Qt configuration
         Loc: [/Volumes/T3/Dev/qt/qt5_cmake/qtbase/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp(337)]
      SKIP   : tst_QSqlQuery::oci_nullBlob() No database drivers of type QOCI are available in this Qt configuration
         Loc: [/Volumes/T3/Dev/qt/qt5_cmake/qtbase/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp(337)]
      PASS   : tst_QSqlQuery::blob(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db)
      SKIP   : tst_QSqlQuery::oci_rawField() No database drivers of type QOCI are available in this Qt configuration
         Loc: [/Volumes/T3/Dev/qt/qt5_cmake/qtbase/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp(337)]
      WARNING: tst_QSqlQuery::precision(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db) QSQLITE@ didn't return the right precision (18 out of 21), 1.2345678901234567
         Loc: [/Volumes/T3/Dev/qt/qt5_cmake/qtbase/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp(1879)]
      PASS   : tst_QSqlQuery::precision(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db)
      PASS   : tst_QSqlQuery::nullResult(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db)
      PASS   : tst_QSqlQuery::joins(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db)
      SKIP   : tst_QSqlQuery::outValues(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db) Don't know how to create a stored procedure for this database server, please fix this test
         Loc: [/Volumes/T3/Dev/qt/qt5_cmake/qtbase/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp(947)]
      PASS   : tst_QSqlQuery::char1Select(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db)
      PASS   : tst_QSqlQuery::char1SelectUnicode(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db)
      PASS   : tst_QSqlQuery::synonyms(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db)
      SKIP   : tst_QSqlQuery::oraOutValues() No database drivers of type QOCI are available in this Qt configuration
         Loc: [/Volumes/T3/Dev/qt/qt5_cmake/qtbase/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp(337)]
      SKIP   : tst_QSqlQuery::mysql_outValues() No database drivers of type QMYSQL are available in this Qt configuration
         Loc: [/Volumes/T3/Dev/qt/qt5_cmake/qtbase/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp(337)]
      SKIP   : tst_QSqlQuery::oraClob() No database drivers of type QOCI are available in this Qt configuration
         Loc: [/Volumes/T3/Dev/qt/qt5_cmake/qtbase/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp(337)]
      SKIP   : tst_QSqlQuery::oraClobBatch() No database drivers of type QOCI are available in this Qt configuration
         Loc: [/Volumes/T3/Dev/qt/qt5_cmake/qtbase/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp(337)]
      SKIP   : tst_QSqlQuery::oraLong() No database drivers of type QOCI are available in this Qt configuration
         Loc: [/Volumes/T3/Dev/qt/qt5_cmake/qtbase/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp(337)]
      SKIP   : tst_QSqlQuery::oraOCINumber() No database drivers of type QOCI are available in this Qt configuration
         Loc: [/Volumes/T3/Dev/qt/qt5_cmake/qtbase/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp(337)]
      SKIP   : tst_QSqlQuery::outValuesDB2() No database drivers of type QDB2 are available in this Qt configuration
         Loc: [/Volumes/T3/Dev/qt/qt5_cmake/qtbase/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp(337)]
      SKIP   : tst_QSqlQuery::storedProceduresIBase() No database drivers of type QIBASE are available in this Qt configuration
         Loc: [/Volumes/T3/Dev/qt/qt5_cmake/qtbase/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp(337)]
      SKIP   : tst_QSqlQuery::oraRowId() No database drivers of type QOCI are available in this Qt configuration
         Loc: [/Volumes/T3/Dev/qt/qt5_cmake/qtbase/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp(337)]
      PASS   : tst_QSqlQuery::prepare_bind_exec(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db)
      PASS   : tst_QSqlQuery::prepared_select(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db)
      SKIP   : tst_QSqlQuery::sqlServerLongStrings(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db) SQL Server specific test
         Loc: [/Volumes/T3/Dev/qt/qt5_cmake/qtbase/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp(2393)]
      PASS   : tst_QSqlQuery::invalidQuery(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db)
      PASS   : tst_QSqlQuery::batchExec(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db)
      PASS   : tst_QSqlQuery::QTBUG_43874(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db)
      SKIP   : tst_QSqlQuery::oraArrayBind() No database drivers of type QOCI are available in this Qt configuration
         Loc: [/Volumes/T3/Dev/qt/qt5_cmake/qtbase/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp(337)]
      PASS   : tst_QSqlQuery::lastInsertId(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db)
      PASS   : tst_QSqlQuery::lastQuery(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db)
      PASS   : tst_QSqlQuery::lastQueryTwoQueries(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db)
      PASS   : tst_QSqlQuery::bindBool(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db)
      SKIP   : tst_QSqlQuery::psql_bindWithDoubleColonCastOperator() No database drivers of type QPSQL are available in this Qt configuration
         Loc: [/Volumes/T3/Dev/qt/qt5_cmake/qtbase/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp(337)]
      SKIP   : tst_QSqlQuery::psql_specialFloatValues() No database drivers of type QPSQL are available in this Qt configuration
         Loc: [/Volumes/T3/Dev/qt/qt5_cmake/qtbase/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp(337)]
      QWARN  : tst_QSqlQuery::queryOnInvalidDatabase(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db) QSqlDatabase: available drivers: QSQLITE
      PASS   : tst_QSqlQuery::queryOnInvalidDatabase(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db)
      SKIP   : tst_QSqlQuery::createQueryOnClosedDatabase(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db) Test is specific for PostgreSQL, Oracle, MySql and DB2
         Loc: [/Volumes/T3/Dev/qt/qt5_cmake/qtbase/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp(2921)]
      PASS   : tst_QSqlQuery::seekForwardOnlyQuery(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db)
      PASS   : tst_QSqlQuery::reExecutePreparedForwardOnlyQuery(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db)
      PASS   : tst_QSqlQuery::blobsPreparedQuery(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db)
      PASS   : tst_QSqlQuery::emptyTableNavigate(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db)
      PASS   : tst_QSqlQuery::timeStampParsing(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db)
      PASS   : tst_QSqlQuery::sqliteVirtualTable(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db)
      SKIP   : tst_QSqlQuery::mysql_timeType() No database drivers of type QMYSQL are available in this Qt configuration
         Loc: [/Volumes/T3/Dev/qt/qt5_cmake/qtbase/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp(337)]
      PASS   : tst_QSqlQuery::task_217003(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db)
      SKIP   : tst_QSqlQuery::task_250026() No database drivers of type QODBC are available in this Qt configuration
         Loc: [/Volumes/T3/Dev/qt/qt5_cmake/qtbase/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp(337)]
      QDEBUG : tst_QSqlQuery::crashQueryOnCloseDatabase() Testing crash in sqlquery dtor for driver "QSQLITE"
      QWARN  : tst_QSqlQuery::crashQueryOnCloseDatabase() QSqlDatabasePrivate::removeDatabase: connection 'crashTest' is still in use, all queries will cease to work.
      PASS   : tst_QSqlQuery::crashQueryOnCloseDatabase()
      SKIP   : tst_QSqlQuery::task_233829() No database drivers of type QPSQL are available in this Qt configuration
         Loc: [/Volumes/T3/Dev/qt/qt5_cmake/qtbase/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp(337)]
      SKIP   : tst_QSqlQuery::QTBUG_12477() No database drivers of type QPSQL are available in this Qt configuration
         Loc: [/Volumes/T3/Dev/qt/qt5_cmake/qtbase/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp(337)]
      SKIP   : tst_QSqlQuery::sqlServerReturn0(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db) SQL Server specific test
         Loc: [/Volumes/T3/Dev/qt/qt5_cmake/qtbase/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp(3509)]
      SKIP   : tst_QSqlQuery::QTBUG_551() No database drivers of type QOCI are available in this Qt configuration
         Loc: [/Volumes/T3/Dev/qt/qt5_cmake/qtbase/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp(337)]
      SKIP   : tst_QSqlQuery::QTBUG_5251() No database drivers of type QPSQL are available in this Qt configuration
         Loc: [/Volumes/T3/Dev/qt/qt5_cmake/qtbase/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp(337)]
      SKIP   : tst_QSqlQuery::QTBUG_6421() No database drivers of type QOCI are available in this Qt configuration
         Loc: [/Volumes/T3/Dev/qt/qt5_cmake/qtbase/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp(337)]
      SKIP   : tst_QSqlQuery::QTBUG_6618() No database drivers of type QODBC are available in this Qt configuration
         Loc: [/Volumes/T3/Dev/qt/qt5_cmake/qtbase/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp(337)]
      SKIP   : tst_QSqlQuery::QTBUG_6852() No database drivers of type QMYSQL are available in this Qt configuration
         Loc: [/Volumes/T3/Dev/qt/qt5_cmake/qtbase/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp(337)]
      SKIP   : tst_QSqlQuery::QTBUG_5765() No database drivers of type QMYSQL are available in this Qt configuration
         Loc: [/Volumes/T3/Dev/qt/qt5_cmake/qtbase/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp(337)]
      PASS   : tst_QSqlQuery::QTBUG_12186(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db)
      SKIP   : tst_QSqlQuery::QTBUG_14132() No database drivers of type QOCI are available in this Qt configuration
         Loc: [/Volumes/T3/Dev/qt/qt5_cmake/qtbase/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp(337)]
      SKIP   : tst_QSqlQuery::QTBUG_18435() No database drivers of type QODBC are available in this Qt configuration
         Loc: [/Volumes/T3/Dev/qt/qt5_cmake/qtbase/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp(337)]
      PASS   : tst_QSqlQuery::QTBUG_21884(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db)
      PASS   : tst_QSqlQuery::QTBUG_16967(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db)
      PASS   : tst_QSqlQuery::QTBUG_23895(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db)
      PASS   : tst_QSqlQuery::QTBUG_14904(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db)
      PASS   : tst_QSqlQuery::QTBUG_2192(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db)
      SKIP   : tst_QSqlQuery::QTBUG_36211() No database drivers of type QPSQL are available in this Qt configuration
         Loc: [/Volumes/T3/Dev/qt/qt5_cmake/qtbase/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp(337)]
      SKIP   : tst_QSqlQuery::QTBUG_53969() No database drivers of type QMYSQL are available in this Qt configuration
         Loc: [/Volumes/T3/Dev/qt/qt5_cmake/qtbase/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp(337)]
      SKIP   : tst_QSqlQuery::gisPointDatatype() No database drivers of type QMYSQL are available in this Qt configuration
         Loc: [/Volumes/T3/Dev/qt/qt5_cmake/qtbase/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp(337)]
      PASS   : tst_QSqlQuery::sqlite_constraint(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db)
      PASS   : tst_QSqlQuery::sqlite_real(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db)
      PASS   : tst_QSqlQuery::aggregateFunctionTypes(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db)
      SKIP   : tst_QSqlQuery::integralTypesMysql() No database drivers of type QMYSQL are available in this Qt configuration
         Loc: [/Volumes/T3/Dev/qt/qt5_cmake/qtbase/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp(337)]
      PASS   : tst_QSqlQuery::QTBUG_57138(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db)
      SKIP   : tst_QSqlQuery::dateTime(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db timestamp with time zone) Implemented only for Oracle
         Loc: [/Volumes/T3/Dev/qt/qt5_cmake/qtbase/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp(4625)]
      SKIP   : tst_QSqlQuery::dateTime(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.db timestamp with local time zone) Implemented only for Oracle
         Loc: [/Volumes/T3/Dev/qt/qt5_cmake/qtbase/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp(4625)]
      SKIP   : tst_QSqlQuery::dateTime(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.dbtimestamp) Implemented only for Oracle
         Loc: [/Volumes/T3/Dev/qt/qt5_cmake/qtbase/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp(4625)]
      SKIP   : tst_QSqlQuery::dateTime(0_QSQLITE@/private/var/folders/b0/d9_cv_011jvdl2kt9z25np080000gn/T/tst_qsqlquery-fnEhjy/foo.dbdate) Implemented only for Oracle
         Loc: [/Volumes/T3/Dev/qt/qt5_cmake/qtbase/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp(4625)]
      PASS   : tst_QSqlQuery::cleanupTestCase()
      Totals: 56 passed, 0 failed, 43 skipped, 0 blacklisted, 5450ms
      ********* Finished testing of tst_QSqlQuery *********
      =================================================================
      ==28264==ERROR: AddressSanitizer: heap-use-after-free on address 0x60f000001030 at pc 0x0001087a1ddd bp 0x7ffee7af7760 sp 0x7ffee7af7758
      WRITE of size 4 at 0x60f000001030 thread T0
          #0 0x1087a1ddc in std::__1::__atomic_base<int, true>::fetch_sub(int, std::__1::memory_order) atomic:1023
          #1 0x1087a1b9e in std::__1::__atomic_base<int, true>::operator--() atomic:1058
          #2 0x1087a1b64 in bool QAtomicOps<int>::deref<int>(std::__1::atomic<int>&) qatomic_cxx11.h:289
          #3 0x1087a1b44 in QBasicAtomicInteger<int>::deref() qbasicatomic.h:119
          #4 0x109116ece in QThreadData::deref() qthread.cpp:119
          #5 0x109772232 in QObjectPrivate::~QObjectPrivate() qobject.cpp:226
          #6 0x10863da80 in QSqlDriverPrivate::~QSqlDriverPrivate() qsqldriver_p.h:61
          #7 0x10863d9d4 in QSqlDriverPrivate::~QSqlDriverPrivate() qsqldriver_p.h:61
          #8 0x10863d9f8 in QSqlDriverPrivate::~QSqlDriverPrivate() qsqldriver_p.h:61
          #9 0x1097ad9be in QScopedPointerDeleter<QObjectData>::cleanup(QObjectData*) qscopedpointer.h:60
          #10 0x1097ad8ff in QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> >::~QScopedPointer() qscopedpointer.h:107
          #11 0x109778584 in QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> >::~QScopedPointer() qscopedpointer.h:105
          #12 0x109779879 in QObject::~QObject() qobject.cpp:1081
          #13 0x108634c44 in QSqlDriver::~QSqlDriver() qsqldriver.cpp:101
          #14 0x10861c1f4 in QSqlNullDriver::~QSqlNullDriver() qsqlnulldriver_p.h:92
          #15 0x10860cd34 in QSqlNullDriver::~QSqlNullDriver() qsqlnulldriver_p.h:92
          #16 0x7fff6b50f13b in __cxa_finalize_ranges (libsystem_c.dylib:x86_64+0x5a13b)
          #17 0x7fff6b50f411 in exit (libsystem_c.dylib:x86_64+0x5a411)
          #18 0x7fff6b465ccf in start (libdyld.dylib:x86_64+0x1accf)
      
      0x60f000001030 is located 0 bytes inside of 168-byte region [0x60f000001030,0x60f0000010d8)
      freed by thread T0 here:
          #0 0x10a85ab02 in wrap__ZdlPv (libclang_rt.asan_osx_dynamic.dylib:x86_64h+0x6eb02)
          #1 0x109116ef6 in QThreadData::deref() qthread.cpp:120
          #2 0x108abe514 in QCoreApplicationData::~QCoreApplicationData() qcoreapplication.cpp:366
          #3 0x108abe4b4 in QCoreApplicationData::~QCoreApplicationData() qcoreapplication.cpp:361
          #4 0x108abe479 in (anonymous namespace)::Q_QGS_coreappdata::innerFunction()::Cleanup::~Cleanup() qcoreapplication.cpp:384
          #5 0x108abe294 in (anonymous namespace)::Q_QGS_coreappdata::innerFunction()::Cleanup::~Cleanup() qcoreapplication.cpp:384
          #6 0x7fff6b50f13b in __cxa_finalize_ranges (libsystem_c.dylib:x86_64+0x5a13b)
          #7 0x7fff6b50f411 in exit (libsystem_c.dylib:x86_64+0x5a411)
          #8 0x7fff6b465ccf in start (libdyld.dylib:x86_64+0x1accf)
      
      previously allocated by thread T0 here:
          #0 0x10a85a502 in wrap__Znwm (libclang_rt.asan_osx_dynamic.dylib:x86_64h+0x6e502)
          #1 0x109355a1a in QThreadData::current(bool) qthread_unix.cpp:184
          #2 0x109777998 in QObject::QObject(QObjectPrivate&, QObject*) qobject.cpp:913
          #3 0x108634b1d in QSqlDriver::QSqlDriver(QObject*) qsqldriver.cpp:84
          #4 0x10861ac07 in QSqlNullDriver::QSqlNullDriver() qsqlnulldriver_p.h:95
          #5 0x10860cd14 in QSqlNullDriver::QSqlNullDriver() qsqlnulldriver_p.h:96
          #6 0x10860b995 in QSqlDatabasePrivate::shared_null() qsqldatabase.cpp:180
          #7 0x108612808 in QSqlDatabase::QSqlDatabase() qsqldatabase.cpp:654
          #8 0x10860e784 in QSqlDatabase::QSqlDatabase() qsqldatabase.cpp:653
          #9 0x108270998 in __cxx_global_var_init tst_qsqlquery.cpp:36
          #10 0x108270ae4 in _GLOBAL__sub_I_tst_qsqlquery.cpp tst_qsqlquery.cpp
          #11 0x1108671e2 in ImageLoaderMachO::doModInitFunctions(ImageLoader::LinkContext const&) (dyld:x86_64+0x1b1e2)
          #12 0x1108675ed in ImageLoaderMachO::doInitialization(ImageLoader::LinkContext const&) (dyld:x86_64+0x1b5ed)
          #13 0x11086200a in ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (dyld:x86_64+0x1600a)
          #14 0x110860013 in ImageLoader::processInitializers(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (dyld:x86_64+0x14013)
          #15 0x1108600b3 in ImageLoader::runInitializers(ImageLoader::LinkContext const&, ImageLoader::InitializerTimingList&) (dyld:x86_64+0x140b3)
          #16 0x11084e5e5 in dyld::initializeMainExecutable() (dyld:x86_64+0x25e5)
          #17 0x110853af7 in dyld::_main(macho_header const*, unsigned long, int, char const**, char const**, char const**, unsigned long*) (dyld:x86_64+0x7af7)
          #18 0x11084d226 in dyldbootstrap::start(dyld3::MachOLoaded const*, int, char const**, dyld3::MachOLoaded const*, unsigned long*) (dyld:x86_64+0x1226)
          #19 0x11084d024 in _dyld_start (dyld:x86_64+0x1024)
      
      SUMMARY: AddressSanitizer: heap-use-after-free atomic:1023 in std::__1::__atomic_base<int, true>::fetch_sub(int, std::__1::memory_order)
      Shadow bytes around the buggy address:
        0x1c1e000001b0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
        0x1c1e000001c0: fd fd fa fa fa fa fa fa fa fa fd fd fd fd fd fd
        0x1c1e000001d0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
        0x1c1e000001e0: fa fa fa fa fa fa fa fa 00 00 00 00 00 00 00 00
        0x1c1e000001f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 fa fa
      =>0x1c1e00000200: fa fa fa fa fa fa[fd]fd fd fd fd fd fd fd fd fd
        0x1c1e00000210: fd fd fd fd fd fd fd fd fd fd fd fa fa fa fa fa
        0x1c1e00000220: fa fa fa fa fd fd fd fd fd fd fd fd fd fd fd fd
        0x1c1e00000230: fd fd fd fd fd fd fd fd fd fa fa fa fa fa fa fa
        0x1c1e00000240: fa fa fd fd fd fd fd fd fd fd fd fd fd fd fd fd
        0x1c1e00000250: fd fd fd fd fd fd fd fa fa fa fa fa fa fa fa fa
      Shadow byte legend (one shadow byte represents 8 application bytes):
        Addressable:           00
        Partially addressable: 01 02 03 04 05 06 07
        Heap left redzone:       fa
        Freed heap region:       fd
        Stack left redzone:      f1
        Stack mid redzone:       f2
        Stack right redzone:     f3
        Stack after return:      f5
        Stack use after scope:   f8
        Global redzone:          f9
        Global init order:       f6
        Poisoned by user:        f7
        Container overflow:      fc
        Array cookie:            ac
        Intra object redzone:    bb
        ASan internal:           fe
        Left alloca redzone:     ca
        Right alloca redzone:    cb
        Shadow gap:              cc
      ==28264==ABORTING
      [1]    28264 abort       "-o" "tst_qsqlquery.xml,xml" "-o" "-,txt"
      

        Attachments

          Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

            Activity

              People

              Assignee:
              alexandru.croitor Alexandru Croitor
              Reporter:
              alexandru.croitor Alexandru Croitor
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:

                  Gerrit Reviews

                  There are no open Gerrit changes