- if (! str_equiv(qsc->lpServiceStartName, NSSM_LOCALSYSTEM_ACCOUNT)) {\r
- size_t len = _tcslen(qsc->lpServiceStartName);\r
- service->username = (TCHAR *) HeapAlloc(GetProcessHeap(), 0, (len + 1) * sizeof(TCHAR));\r
- if (service->username) {\r
- memmove(service->username, qsc->lpServiceStartName, (len + 1) * sizeof(TCHAR));\r
- service->usernamelen = (unsigned long) len;\r
- }\r
- else {\r
- HeapFree(GetProcessHeap(), 0, qsc);\r
- CloseHandle(service->handle);\r
- CloseServiceHandle(services);\r
- print_message(stderr, NSSM_MESSAGE_OUT_OF_MEMORY, _T("username"), _T("pre_edit_service()"));\r
- return 5;\r
- }\r
+ if (get_service_username(service->name, qsc, &service->username, &service->usernamelen)) {\r
+ HeapFree(GetProcessHeap(), 0, qsc);\r
+ CloseHandle(service->handle);\r
+ CloseServiceHandle(services);\r
+ return 5;\r