From: Haoyang Chen Subject: [PATCH] shell32: Make SHELL_translate_idlist() support url in PIDL. Message-Id: <38bc09a8-8193-3ead-df6f-e009fe5b5396@uniontech.com> Date: Wed, 9 Sep 2020 15:16:54 +0800 From 361c369ada6e89af4fa0057b56e32595d855b921 Mon Sep 17 00:00:00 2001 From: Haoyang Chen Date: Mon, 27 Jul 2020 14:28:59 +0800 Subject: [PATCH] shell32: Make SHELL_translate_idlist() support url in PIDL. Signed-off-by: Haoyang Chen --- dlls/shell32/shlexec.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/dlls/shell32/shlexec.c b/dlls/shell32/shlexec.c index ce0b8f6d2b..c8f85706b3 100644 --- a/dlls/shell32/shlexec.c +++ b/dlls/shell32/shlexec.c @@ -1466,6 +1466,11 @@ static void SHELL_translate_idlist( LPSHELLEXECUTEINFOW sei, LPWSTR wszParameter buffer, target, sei->lpIDList, NULL, &resultLen); if (resultLen > dwApplicationNameLen) ERR("Argify buffer not large enough... truncating\n"); + } else if (PathIsURLW(buffer)) { /* if the PIDL is a url, it is no a GUID, nor a directory*/ + if (strlenW(buffer) > dwApplicationNameLen) + ERR("application len exceeds buffer size (%i > %i), truncating\n", + lstrlenW(buffer) + 1, dwApplicationNameLen); + lstrcpynW(wszApplicationName, buffer, dwApplicationNameLen); } sei->fMask &= ~SEE_MASK_INVOKEIDLIST; } -- 2.20.1