Handle virtual accounts when dumping service config.
[nssm.git] / gui.cpp
diff --git a/gui.cpp b/gui.cpp
index 5fe3384..628b136 100644 (file)
--- a/gui.cpp
+++ b/gui.cpp
@@ -465,13 +465,12 @@ int configure(HWND window, nssm_service_t *service, nssm_service_t *orig_service
   }\r
   else if (SendDlgItemMessage(tablist[NSSM_TAB_LOGON], IDC_VIRTUAL_SERVICE, BM_GETCHECK, 0, 0) & BST_CHECKED) {\r
     if (service->username) HeapFree(GetProcessHeap(), 0, service->username);\r
-    service->usernamelen = _tcslen(NSSM_VIRTUAL_SERVICE_ACCOUNT_DOMAIN) + _tcslen(service->name) + 2;\r
-    service->username = (TCHAR *) HeapAlloc(GetProcessHeap(), 0, service->usernamelen * sizeof(TCHAR));\r
+    service->username = virtual_account(service->name);\r
     if (! service->username) {\r
       popup_message(window, MB_OK | MB_ICONEXCLAMATION, NSSM_EVENT_OUT_OF_MEMORY, _T("account name"), _T("install()"));\r
       return 6;\r
     }\r
-    _sntprintf_s(service->username, service->usernamelen, _TRUNCATE, _T("%s\\%s"), NSSM_VIRTUAL_SERVICE_ACCOUNT_DOMAIN, service->name);\r
+    service->usernamelen = _tcslen(service->username) + 1;\r
     service->password = 0;\r
     service->passwordlen = 0;\r
   }\r