From 3b186ceef81e233fcaab94a10c98a582c27cfcfd Mon Sep 17 00:00:00 2001 From: Giuseppe D'Angelo Date: Fri, 22 Mar 2024 17:23:22 +0100 Subject: [PATCH] QDbusTrayIcon: handle open() failure QDbusTrayIcon has a convoluted workaround/hack that consists in putting an icon file in /tmp/ and then using that path as the icon. Opening the icon file may fail, so handle it. Change-Id: I5d1c681e2fe3cfb23e93fd20f6758d4c83fe1578 Reviewed-by: Dmitry Shachnev Reviewed-by: Shawn Rutledge --- src/gui/platform/unix/dbustray/qdbustrayicon.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/gui/platform/unix/dbustray/qdbustrayicon.cpp b/src/gui/platform/unix/dbustray/qdbustrayicon.cpp index 5be223b510e..0dff9b598ea 100644 --- a/src/gui/platform/unix/dbustray/qdbustrayicon.cpp +++ b/src/gui/platform/unix/dbustray/qdbustrayicon.cpp @@ -198,7 +198,10 @@ QTemporaryFile *QDBusTrayIcon::tempIcon(const QIcon &icon) if (!necessary) return nullptr; QTemporaryFile *ret = new QTemporaryFile(tempFileTemplate(), this); - ret->open(); + if (!ret->open()) { + delete ret; + return nullptr; + } icon.pixmap(QSize(22, 22)).save(ret); ret->close(); return ret;