From f34c6540a639e9f76a5a0cbab5ea7406f25adbe0 Mon Sep 17 00:00:00 2001 From: Valentin Radu Date: Thu, 17 Feb 2022 22:52:46 +0200 Subject: [PATCH] Setup: Ensure file path for `SHFileOperation` is ended with 2 zeros --- ep_setup/ep_setup.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/ep_setup/ep_setup.c b/ep_setup/ep_setup.c index 305461a..fda7b47 100644 --- a/ep_setup/ep_setup.c +++ b/ep_setup/ep_setup.c @@ -47,16 +47,18 @@ BOOL SetupShortcut(BOOL bInstall, WCHAR* wszPath, WCHAR* wszArguments) } } BOOL bOk = FALSE; - WCHAR wszStartPrograms[MAX_PATH]; - ZeroMemory(wszStartPrograms, MAX_PATH); + WCHAR wszStartPrograms[MAX_PATH + 1]; + ZeroMemory(wszStartPrograms, MAX_PATH + 1); SHGetFolderPathW(NULL, CSIDL_COMMON_PROGRAMS, NULL, SHGFP_TYPE_CURRENT, wszStartPrograms); - wcscat_s(wszStartPrograms, MAX_PATH, L"\\" _T(PRODUCT_NAME)); + wcscat_s(wszStartPrograms, MAX_PATH + 1, L"\\" _T(PRODUCT_NAME)); + wszStartPrograms[wcslen(wszStartPrograms) + 1] = 0; SHFILEOPSTRUCTW op; ZeroMemory(&op, sizeof(SHFILEOPSTRUCTW)); op.wFunc = FO_DELETE; op.pFrom = wszStartPrograms; op.fFlags = FOF_NO_UI; - bOk = !SHFileOperationW(&op); + bOk = SHFileOperationW(&op); + bOk = !bOk; if (bInstall) { if (!CreateDirectoryW(wszStartPrograms, NULL))