From 7828b057da0491f1b08bfaec681067e195d7b6ca Mon Sep 17 00:00:00 2001 From: Frank Reininghaus Date: Sun, 1 Jun 2014 14:44:57 +0200 Subject: [PATCH] Do not crash if QApplication::clipboard()->mimeData() is a null pointer According to a recent bug report, this can happen on Wayland. The root cause of the problem might be a problem in Qt's Wayland support itself, but this patch at least prevents that Dolphin and other applications which check the clipboard state to determine the text of the paste action crash on startup. BUG: 335053 REVIEW: 118450 --- lib/konq/konq_operations.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/lib/konq/konq_operations.cpp b/lib/konq/konq_operations.cpp index 781ea1e48..220a90a3f 100644 --- a/lib/konq/konq_operations.cpp +++ b/lib/konq/konq_operations.cpp @@ -1031,8 +1031,17 @@ QPair KonqOperations::pasteInfo(const KUrl& targetUrl) QClipboard* clipboard = QApplication::clipboard(); const QMimeData* mimeData = clipboard->mimeData(); - const bool canPasteData = KIO::canPasteMimeSource(mimeData); - KUrl::List urls = KUrl::List::fromMimeData(mimeData); + bool canPasteData = false; + KUrl::List urls; + + // mimeData can be 0 according to https://bugs.kde.org/show_bug.cgi?id=335053 + if (mimeData) { + canPasteData = KIO::canPasteMimeSource(mimeData); + urls = KUrl::List::fromMimeData(mimeData); + } else { + kWarning(1203) << "QApplication::clipboard()->mimeData() is 0!"; + } + if (!urls.isEmpty() || canPasteData) { // disable the paste action if no writing is supported KFileItem item(KFileItem::Unknown, KFileItem::Unknown, targetUrl);