From 424d5bf29647cc13774e1219ac7848cb85d8915e Mon Sep 17 00:00:00 2001 From: Eirik Aavitsland <eirik.aavitsland@qt.io> Date: Tue, 3 Jan 2023 15:04:16 +0100 Subject: [PATCH 076/147] 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. Pick-to: 6.5 6.4 6.2 5.15 Change-Id: I51d16b1feddc5945955ac75a2e8701233dba7b82 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io> (cherry picked from commit f091026be1deb4b4a90f32585b9b22f97209866a) --- src/gui/image/qimagereader.cpp | 2 +- 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 5cb7e1328e..2e6b364a98 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 33f5e491c7..c4654d18e8 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; } -- 2.40.1