From d7db2b43596b9a51017546eb1c6e2c4e30a0041e Mon Sep 17 00:00:00 2001 From: Giuseppe D'Angelo Date: Wed, 19 Jul 2017 16:21:36 +0200 Subject: QPicture: check that pictureFormat doesn't return dangling pointers The function returns a const char * out of a QByteArray. We must be sure that the QByteArray outlives the function, otherwise the pointer returned would be dangling. Add an assertion for that. Found by clazy. Change-Id: I3416af4eb5ec79ddb3e4baf3bdcfe046b44d4225 Reviewed-by: Eirik Aavitsland --- src/gui/image/qpicture.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src/gui/image/qpicture.cpp') diff --git a/src/gui/image/qpicture.cpp b/src/gui/image/qpicture.cpp index 7506e2e1a9..010f5ecf67 100644 --- a/src/gui/image/qpicture.cpp +++ b/src/gui/image/qpicture.cpp @@ -1206,7 +1206,12 @@ QT_END_INCLUDE_NAMESPACE const char* QPicture::pictureFormat(const QString &fileName) { - return QPictureIO::pictureFormat(fileName); + const QByteArray format = QPictureIO::pictureFormat(fileName); + // This function returns a const char * from a QByteArray. + // Double check that the QByteArray is not detached, otherwise + // we would return a dangling pointer. + Q_ASSERT(!format.isDetached()); + return format; } /*! -- cgit v1.2.3