summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEirik Aavitsland <eirik.aavitsland@qt.io>2023-01-03 15:04:16 +0100
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2023-01-04 02:28:37 +0000
commit29a9b41e8c37a5c60bafc0e11ef5a0c78f88a81d (patch)
treeb5992be4fa9717a0e97e99032378d346ec682ae7 /src
parent887d5eddb0e926e12841a9dbe8f425704da25e6d (diff)
Fix deletion order in QImageReader/Writer destructors
The device would be deleted before the image format handler, and hence be a dangling pointer that could easily cause a crash if the handler or codec would access it on destruction, e.g. for cleanup. Change-Id: I51d16b1feddc5945955ac75a2e8701233dba7b82 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io> (cherry picked from commit f091026be1deb4b4a90f32585b9b22f97209866a) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'src')
-rw-r--r--src/gui/image/qimagereader.cpp2
-rw-r--r--src/gui/image/qimagewriter.cpp2
2 files changed, 2 insertions, 2 deletions
diff --git a/src/gui/image/qimagereader.cpp b/src/gui/image/qimagereader.cpp
index 7030ae616e..75b0e3f431 100644
--- a/src/gui/image/qimagereader.cpp
+++ b/src/gui/image/qimagereader.cpp
@@ -515,9 +515,9 @@ QImageReaderPrivate::QImageReaderPrivate(QImageReader *qq)
*/
QImageReaderPrivate::~QImageReaderPrivate()
{
+ delete handler;
if (deleteDevice)
delete device;
- delete handler;
}
/*!
diff --git a/src/gui/image/qimagewriter.cpp b/src/gui/image/qimagewriter.cpp
index 3982740e11..3d90dece9c 100644
--- a/src/gui/image/qimagewriter.cpp
+++ b/src/gui/image/qimagewriter.cpp
@@ -349,9 +349,9 @@ QImageWriter::QImageWriter(const QString &fileName, const QByteArray &format)
*/
QImageWriter::~QImageWriter()
{
+ delete d->handler;
if (d->deleteDevice)
delete d->device;
- delete d->handler;
delete d;
}