From d8144b3f27e32f4e2aaa2c6045fc962c623efbac Mon Sep 17 00:00:00 2001 From: Jasem Mutlaq Date: Fri, 28 Aug 2026 11:35:42 +0300 Subject: [PATCH] KColorMimeData: guard against a null QMimeData pointer This is a recent regression that caused all KStars tests to crash locally in Wayland. QClipboard::mimeData() can return nullptr when the clipboard has never been set in the current session (e.g. the offscreen QPA platform, or a freshly started Wayland session with no clipboard manager). Since the KColorButton/KColorCombo copy & paste context menu added in 00866bc50fa32c280db443fc14e5294dcabfdeb4, KAbstractColorEditPrivate's Q_GLOBAL_STATIC KColorClipboardWatcher passes that pointer straight into KColorMimeData::canDecode()/fromMimeData(), which dereferenced it unconditionally, crashing on construction of the very first KColorButton/KColorCombo in the process. --- src/kcolormimedata.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/kcolormimedata.cpp b/src/kcolormimedata.cpp index 960bf09e..96227ca6 100644 --- a/src/kcolormimedata.cpp +++ b/src/kcolormimedata.cpp @@ -24,6 +24,11 @@ void populateMimeData(QMimeData *mimeData, const QColor &color) bool canDecode(const QMimeData *mimeData) { + // QClipboard::mimeData() can return nullptr when the clipboard has never + // been set (e.g. no clipboard manager, or the "offscreen" QPA platform). + if (!mimeData) { + return false; + } if (mimeData->hasColor()) { return true; } @@ -38,6 +43,9 @@ bool canDecode(const QMimeData *mimeData) QColor fromMimeData(const QMimeData *mimeData) { + if (!mimeData) { + return QColor(); + } if (mimeData->hasColor()) { return mimeData->colorData().value(); } -- GitLab