diff options
author | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2012-02-16 12:27:46 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-02-17 05:25:59 +0100 |
commit | 543d994967628f580eb34d4d0241846eaef3bd7d (patch) | |
tree | 48706841ef2a7f4cbc7292835548f13fee645842 /src | |
parent | b838170cebc8d1adefc6c8de34e6a39494ffd75e (diff) |
Fix QWindowsClipboard crash when mimeData is NULL.
When setting NULL mimeData in QWindowsClipboard::setMimeData, and the
OleSetClipboard call failed, the warning print crashed because it
tried to access mimeData.
Task-number: QTBUG-24327
Change-Id: I1f56fd28c9191a330e14a93b4b11ac9c89db6985
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/platforms/windows/qwindowsclipboard.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/plugins/platforms/windows/qwindowsclipboard.cpp b/src/plugins/platforms/windows/qwindowsclipboard.cpp index 521ca3dc07..c1167ccf3a 100644 --- a/src/plugins/platforms/windows/qwindowsclipboard.cpp +++ b/src/plugins/platforms/windows/qwindowsclipboard.cpp @@ -326,13 +326,16 @@ void QWindowsClipboard::setMimeData(QMimeData *mimeData, QClipboard::Mode mode) const bool newData = !m_data || m_data->mimeData() != mimeData; if (newData) { releaseIData(); - m_data = new QWindowsOleDataObject(mimeData); + if (mimeData) + m_data = new QWindowsOleDataObject(mimeData); } const HRESULT src = OleSetClipboard(m_data); if (src != S_OK) { + QString mimeDataFormats = mimeData ? + mimeData->formats().join(QStringLiteral(", ")) : QString(QStringLiteral("NULL")); qErrnoWarning("OleSetClipboard: Failed to set mime data (%s) on clipboard: %s", - qPrintable(mimeData->formats().join(QStringLiteral(", "))), + qPrintable(mimeDataFormats), QWindowsContext::comErrorString(src).constData()); releaseIData(); return; |