diff options
author | Eirik Aavitsland <eirik.aavitsland@qt.io> | 2023-01-03 15:04:16 +0100 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2023-01-04 02:28:37 +0000 |
commit | 29a9b41e8c37a5c60bafc0e11ef5a0c78f88a81d (patch) | |
tree | b5992be4fa9717a0e97e99032378d346ec682ae7 /src | |
parent | 887d5eddb0e926e12841a9dbe8f425704da25e6d (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.cpp | 2 | ||||
-rw-r--r-- | src/gui/image/qimagewriter.cpp | 2 |
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; } |