From fe4794f70ecc4a302b22ad26614203a70c049a13 Mon Sep 17 00:00:00 2001 From: Volker Hilsheimer Date: Fri, 8 May 2020 13:18:44 +0200 Subject: [PATCH] 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 Pick-to: 5.15 Reviewed-by: Lars Knoll --- src/testlib/qabstractitemmodeltester.cpp | 18 ++++++++++++++---- 1 file 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; }