From edd8d55b423f2b5b4c8c06b74d01652d126db9e1 Mon Sep 17 00:00:00 2001 From: Chun-wei Fan Date: Thu, 31 Mar 2022 10:36:45 +0800 Subject: [PATCH] gdkclipboard-win32.c: Fix call to gdk_clipboard_claim_remote() The call to gdk_win32_clipboard_request_contentformats() can return NULL even without an error condition being hit (such as when the system clipboard is empty), so check whether the returned GdkContentFormat pointer is not NULL before calling gdk_clipboard_claim_remote(), which expects it to be not NULL, otherwise we face a warning from that funtion and the subsequent g_object_unref(). This at least partially fixes issue #4796. --- gdk/win32/gdkclipboard-win32.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/gdk/win32/gdkclipboard-win32.c b/gdk/win32/gdkclipboard-win32.c index 36d56b8b53..ce80019e56 100644 --- a/gdk/win32/gdkclipboard-win32.c +++ b/gdk/win32/gdkclipboard-win32.c @@ -142,9 +142,13 @@ gdk_win32_clipboard_claim_remote (GdkWin32Clipboard *cb) cb->sequence_number = -1; formats = gdk_win32_clipboard_request_contentformats (cb); - gdk_clipboard_claim_remote (GDK_CLIPBOARD (cb), formats); - gdk_content_formats_unref (formats); - cb->sequence_number = GetClipboardSequenceNumber (); + + if (formats != NULL) + { + gdk_clipboard_claim_remote (GDK_CLIPBOARD (cb), formats); + gdk_content_formats_unref (formats); + cb->sequence_number = GetClipboardSequenceNumber (); + } } static void