From cbee45aace1bb4fd485633224db5433443a201fe Mon Sep 17 00:00:00 2001 From: akallabeth Date: Mon, 20 Apr 2020 16:02:02 +0200 Subject: [PATCH] Fixed clipboard 'called with invalid type' warning --- channels/cliprdr/client/cliprdr_format.c | 4 ++-- client/Android/android_cliprdr.c | 1 + client/Mac/Clipboard.m | 3 ++- client/Wayland/wlf_cliprdr.c | 1 + client/Windows/wf_cliprdr.c | 3 ++- client/X11/xf_cliprdr.c | 2 ++ server/proxy/pf_cliprdr.c | 2 +- 7 files changed, 11 insertions(+), 5 deletions(-) diff --git a/channels/cliprdr/client/cliprdr_format.c b/channels/cliprdr/client/cliprdr_format.c index e2ab39ad8..43b967e1a 100644 --- a/channels/cliprdr/client/cliprdr_format.c +++ b/channels/cliprdr/client/cliprdr_format.c @@ -43,7 +43,7 @@ UINT cliprdr_process_format_list(cliprdrPlugin* cliprdr, wStream* s, UINT32 dataLen, UINT16 msgFlags) { - CLIPRDR_FORMAT_LIST formatList; + CLIPRDR_FORMAT_LIST formatList = { 0 }; CliprdrClientContext* context = cliprdr_get_client_interface(cliprdr); UINT error = CHANNEL_RC_OK; @@ -82,7 +82,7 @@ error_out: UINT cliprdr_process_format_list_response(cliprdrPlugin* cliprdr, wStream* s, UINT32 dataLen, UINT16 msgFlags) { - CLIPRDR_FORMAT_LIST_RESPONSE formatListResponse; + CLIPRDR_FORMAT_LIST_RESPONSE formatListResponse = { 0 }; CliprdrClientContext* context = cliprdr_get_client_interface(cliprdr); UINT error = CHANNEL_RC_OK; diff --git a/client/Android/android_cliprdr.c b/client/Android/android_cliprdr.c index 5e9f79182..414a25d81 100644 --- a/client/Android/android_cliprdr.c +++ b/client/Android/android_cliprdr.c @@ -81,6 +81,7 @@ UINT android_cliprdr_send_client_format_list(CliprdrClientContext* cliprdr) formatList.msgFlags = CB_RESPONSE_OK; formatList.numFormats = numFormats; formatList.formats = formats; + formatList.msgType = CB_FORMAT_LIST; if (!afc->cliprdr->ClientFormatList) goto fail; diff --git a/client/Mac/Clipboard.m b/client/Mac/Clipboard.m index a34e5a85d..a57725f8b 100644 --- a/client/Mac/Clipboard.m +++ b/client/Mac/Clipboard.m @@ -28,7 +28,7 @@ int mac_cliprdr_send_client_format_list(CliprdrClientContext *cliprdr) UINT32 *pFormatIds; const char *formatName; CLIPRDR_FORMAT *formats; - CLIPRDR_FORMAT_LIST formatList; + CLIPRDR_FORMAT_LIST formatList = { 0 }; mfContext *mfc = (mfContext *)cliprdr->custom; ZeroMemory(&formatList, sizeof(CLIPRDR_FORMAT_LIST)); @@ -56,6 +56,7 @@ int mac_cliprdr_send_client_format_list(CliprdrClientContext *cliprdr) formatList.msgFlags = CB_RESPONSE_OK; formatList.numFormats = numFormats; formatList.formats = formats; + formatList.msgType = CB_FORMAT_LIST; mfc->cliprdr->ClientFormatList(mfc->cliprdr, &formatList); diff --git a/client/Wayland/wlf_cliprdr.c b/client/Wayland/wlf_cliprdr.c index 7e11ec146..dff599844 100644 --- a/client/Wayland/wlf_cliprdr.c +++ b/client/Wayland/wlf_cliprdr.c @@ -174,6 +174,7 @@ static UINT wlf_cliprdr_send_client_format_list(wfClipboard* clipboard) formatList.msgFlags = CB_RESPONSE_OK; formatList.numFormats = (UINT32)clipboard->numClientFormats; formatList.formats = clipboard->clientFormats; + formatList.msgType = CB_FORMAT_LIST; return clipboard->context->ClientFormatList(clipboard->context, &formatList); } diff --git a/client/Windows/wf_cliprdr.c b/client/Windows/wf_cliprdr.c index b930f084b..18a5cd254 100644 --- a/client/Windows/wf_cliprdr.c +++ b/client/Windows/wf_cliprdr.c @@ -1235,7 +1235,7 @@ static UINT cliprdr_send_format_list(wfClipboard* clipboard) UINT32 formatId = 0; char formatName[1024]; CLIPRDR_FORMAT* formats = NULL; - CLIPRDR_FORMAT_LIST formatList; + CLIPRDR_FORMAT_LIST formatList = { 0 }; if (!clipboard) return ERROR_INTERNAL_ERROR; @@ -1287,6 +1287,7 @@ static UINT cliprdr_send_format_list(wfClipboard* clipboard) formatList.numFormats = numFormats; formatList.formats = formats; + formatList.msgType = CB_FORMAT_LIST; rc = clipboard->context->ClientFormatList(clipboard->context, &formatList); for (index = 0; index < numFormats; index++) diff --git a/client/X11/xf_cliprdr.c b/client/X11/xf_cliprdr.c index abcae72c8..21017db00 100644 --- a/client/X11/xf_cliprdr.c +++ b/client/X11/xf_cliprdr.c @@ -533,6 +533,7 @@ static void xf_cliprdr_get_requested_targets(xfClipboard* clipboard) formatList.msgFlags = CB_RESPONSE_OK; formatList.numFormats = numFormats; formatList.formats = formats; + formatList.msgType = CB_FORMAT_LIST; clipboard->context->ClientFormatList(clipboard->context, &formatList); xf_cliprdr_free_formats(formats, numFormats); } @@ -1100,6 +1101,7 @@ static UINT xf_cliprdr_send_client_format_list(xfClipboard* clipboard) formatList.msgFlags = CB_RESPONSE_OK; formatList.numFormats = numFormats; formatList.formats = formats; + formatList.msgType = CB_FORMAT_LIST; ret = clipboard->context->ClientFormatList(clipboard->context, &formatList); free(formats); diff --git a/server/proxy/pf_cliprdr.c b/server/proxy/pf_cliprdr.c index d5954ca5e..b4904199d 100644 --- a/server/proxy/pf_cliprdr.c +++ b/server/proxy/pf_cliprdr.c @@ -294,7 +294,7 @@ static UINT pf_cliprdr_ServerFormatList(CliprdrClientContext* context, if (pdata->config->TextOnly) { - CLIPRDR_FORMAT_LIST list; + CLIPRDR_FORMAT_LIST list = { 0 }; pf_cliprdr_create_text_only_format_list(&list); return server->ServerFormatList(server, &list); }