X-Git-Url: http://git.iain.cx/?a=blobdiff_plain;f=gui.cpp;h=0fa11f4ca4df446b65823bd340786d108074eba9;hb=10c2787dcb07398b3a808efbac929f568f3d215a;hp=5fe3384ec4cc76bd11bbde520d183b9ef9dab2e2;hpb=71764fe41e37f36bcbc89ac62f664aeda4240790;p=nssm.git diff --git a/gui.cpp b/gui.cpp index 5fe3384..0fa11f4 100644 --- a/gui.cpp +++ b/gui.cpp @@ -354,7 +354,7 @@ static inline void set_hook_tab(int event_index, int action_index, bool changed) SetEnvironmentVariable(hook_name, cmd); } else { - GetEnvironmentVariable(hook_name, cmd, _countof(cmd)); + if (! GetEnvironmentVariable(hook_name, cmd, _countof(cmd))) cmd[0] = _T('\0'); SetDlgItemText(tablist[NSSM_TAB_HOOKS], IDC_HOOK, cmd); } } @@ -465,13 +465,12 @@ int configure(HWND window, nssm_service_t *service, nssm_service_t *orig_service } else if (SendDlgItemMessage(tablist[NSSM_TAB_LOGON], IDC_VIRTUAL_SERVICE, BM_GETCHECK, 0, 0) & BST_CHECKED) { if (service->username) HeapFree(GetProcessHeap(), 0, service->username); - service->usernamelen = _tcslen(NSSM_VIRTUAL_SERVICE_ACCOUNT_DOMAIN) + _tcslen(service->name) + 2; - service->username = (TCHAR *) HeapAlloc(GetProcessHeap(), 0, service->usernamelen * sizeof(TCHAR)); + service->username = virtual_account(service->name); if (! service->username) { popup_message(window, MB_OK | MB_ICONEXCLAMATION, NSSM_EVENT_OUT_OF_MEMORY, _T("account name"), _T("install()")); return 6; } - _sntprintf_s(service->username, service->usernamelen, _TRUNCATE, _T("%s\\%s"), NSSM_VIRTUAL_SERVICE_ACCOUNT_DOMAIN, service->name); + service->usernamelen = _tcslen(service->username) + 1; service->password = 0; service->passwordlen = 0; }