[cygrunsrv - a wrapper for unix daemons to make them controllable as windows services] branch main, updated. 2ccaad8e5824470d81cea58ccab08a367d9689c0
Corinna Vinschen via Cygwin-apps-cvs <[email protected]> Fri, 24 Apr 2026 11:55:17 +0000 (GMT)
| Newsgroups | gmane.os.cygwin.cvs.apps |
|---|---|
| Message-ID | <[email protected]> |
Diff:
---
cygrunsrv.cc | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/cygrunsrv.cc b/cygrunsrv.cc
index dab879022d94..6951244e7c1f 100644
--- a/cygrunsrv.cc
+++ b/cygrunsrv.cc
@@ -809,7 +809,8 @@ install_service (const char *name, const char *crspath, const char *disp,
type_t type, char *user, char *pass, char **deps,
int interactive)
{
- char mypath[MAX_PATH];
+ char mypath[MAX_PATH+2];
+ char* mypath_p = mypath;
SC_HANDLE sm = (SC_HANDLE) 0;
SC_HANDLE sh = (SC_HANDLE) 0;
char userbuf[INTERNET_MAX_HOST_NAME_LENGTH + UNLEN + 2];
@@ -824,9 +825,11 @@ install_service (const char *name, const char *crspath, const char *disp,
if (!san.server ())
check_system_mounts ();
+ mypath[0] = '"';
+ mypath_p++;
if (crspath) /* Got path, nothing to do. */
{
- cygwin_conv_path (CCP_POSIX_TO_WIN_A, crspath, mypath, MAX_PATH);
+ cygwin_conv_path (CCP_POSIX_TO_WIN_A, crspath, mypath_p, MAX_PATH);
if (strcasecmp (mypath + strlen (mypath) - 4, ".exe") != 0)
strcat (mypath, ".exe");
}
@@ -837,15 +840,16 @@ install_service (const char *name, const char *crspath, const char *disp,
KEY_READ, &cyg_root_key)) != ERROR_SUCCESS)
err_out_set_error (RegOpenKeyEx, ret);
if ((ret = RegQueryValueEx (cyg_root_key, (PCHAR) CYG_ROOT_VAL, 0, &type,
- (BYTE *) mypath, &size)) != ERROR_SUCCESS)
+ (BYTE *) mypath_p, &size)) != ERROR_SUCCESS)
err_out_set_error (RegQueryValueEx, ret);
- strcat (mypath, "\\bin\\cygrunsrv.exe");
+ strcat (mypath_p, "\\bin\\cygrunsrv.exe");
}
else /* Get own full path. */
{
- if (!GetModuleFileName (NULL, mypath, MAX_PATH))
+ if (!GetModuleFileName (NULL, mypath_p, MAX_PATH))
err_out (GetModuleFileName);
}
+ strcat (mypath_p, "\"");
/* Open service manager database. */
if (!(sm = OpenSCManager (san.server (), NULL,
SC_MANAGER_CONNECT | SC_MANAGER_CREATE_SERVICE)))