Browse Source

Setup: Ensure file path for `SHFileOperation` is ended with 2 zeros

pull/886/head
Valentin Radu 4 years ago
parent
commit
f34c6540a6
  1. 10
      ep_setup/ep_setup.c

10
ep_setup/ep_setup.c

@ -47,16 +47,18 @@ BOOL SetupShortcut(BOOL bInstall, WCHAR* wszPath, WCHAR* wszArguments)
} }
} }
BOOL bOk = FALSE; BOOL bOk = FALSE;
WCHAR wszStartPrograms[MAX_PATH]; WCHAR wszStartPrograms[MAX_PATH + 1];
ZeroMemory(wszStartPrograms, MAX_PATH); ZeroMemory(wszStartPrograms, MAX_PATH + 1);
SHGetFolderPathW(NULL, CSIDL_COMMON_PROGRAMS, NULL, SHGFP_TYPE_CURRENT, wszStartPrograms); 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; SHFILEOPSTRUCTW op;
ZeroMemory(&op, sizeof(SHFILEOPSTRUCTW)); ZeroMemory(&op, sizeof(SHFILEOPSTRUCTW));
op.wFunc = FO_DELETE; op.wFunc = FO_DELETE;
op.pFrom = wszStartPrograms; op.pFrom = wszStartPrograms;
op.fFlags = FOF_NO_UI; op.fFlags = FOF_NO_UI;
bOk = !SHFileOperationW(&op); bOk = SHFileOperationW(&op);
bOk = !bOk;
if (bInstall) if (bInstall)
{ {
if (!CreateDirectoryW(wszStartPrograms, NULL)) if (!CreateDirectoryW(wszStartPrograms, NULL))

Loading…
Cancel
Save