diff options
author | Volker Hilsheimer <volker.hilsheimer@qt.io> | 2020-05-08 13:18:44 +0200 |
---|---|---|
committer | Volker Hilsheimer <volker.hilsheimer@qt.io> | 2020-05-19 17:54:20 +0200 |
commit | 47bf767d8da6f1dd13e0fcb3def2abf804d21670 (patch) | |
tree | 9ecb0369122e58e7d9f6597f6b68f76e337add1d /src/testlib/qabstractitemmodeltester.cpp | |
parent | 1356f0c2c3c29cb5a5a676de23f3d582c140bc8c (diff) |
Close memory leak in QTestLib support for item model testing
QTest::toString allocates memory by calling qstrdup; that memory must
be freed by the caller.
Change-Id: I218bc57b3312fdd9195fb49eaed7d20df4bf717c
Fixes: QTBUG-84081
Coverity-Id: 186979
Covierty-Id: 186980
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
(cherry picked from commit fe4794f70ecc4a302b22ad26614203a70c049a13)
Diffstat (limited to 'src/testlib/qabstractitemmodeltester.cpp')
-rw-r--r-- | src/testlib/qabstractitemmodeltester.cpp | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/src/testlib/qabstractitemmodeltester.cpp b/src/testlib/qabstractitemmodeltester.cpp index a09d007a82..4c86d65e77 100644 --- a/src/testlib/qabstractitemmodeltester.cpp +++ b/src/testlib/qabstractitemmodeltester.cpp @@ -819,13 +819,23 @@ bool QAbstractItemModelTesterPrivate::compare(const T1 &t1, const T2 &t2, break; case QAbstractItemModelTester::FailureReportingMode::Warning: - if (!result) - qCWarning(lcModelTest, formatString, actual, QTest::toString(t1), expected, QTest::toString(t2), file, line); + if (!result) { + auto t1string = QTest::toString(t1); + auto t2string = QTest::toString(t2); + qCWarning(lcModelTest, formatString, actual, t1string, expected, t2string, file, line); + delete [] t1string; + delete [] t2string; + } break; case QAbstractItemModelTester::FailureReportingMode::Fatal: - if (!result) - qFatal(formatString, actual, QTest::toString(t1), expected, QTest::toString(t2), file, line); + if (!result) { + auto t1string = QTest::toString(t1); + auto t2string = QTest::toString(t2); + qFatal(formatString, actual, t1string, expected, t2string, file, line); + delete [] t1string; + delete [] t2string; + } break; } |