From: Guus Sliepen Date: Fri, 22 Aug 2003 15:05:01 +0000 (+0000) Subject: Don't overwrite the first " when installing a service. X-Git-Tag: release-1.0.2~36 X-Git-Url: https://www.tinc-vpn.org/git/browse?p=tinc;a=commitdiff_plain;h=570e7e9c615388cfba263c7a7c66cbc3d092d6e7;hp=72bdc05cb7e246e56ed21a25256d441c45fccca8;ds=sidebyside Don't overwrite the first " when installing a service. --- diff --git a/src/process.c b/src/process.c index 35296f04..d1bebcd7 100644 --- a/src/process.c +++ b/src/process.c @@ -17,7 +17,7 @@ along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - $Id: process.c,v 1.1.2.73 2003/08/17 12:05:08 guus Exp $ + $Id: process.c,v 1.1.2.74 2003/08/22 15:05:01 guus Exp $ */ #include "system.h" @@ -82,7 +82,7 @@ static SERVICE_STATUS status = {0}; static SERVICE_STATUS_HANDLE statushandle = 0; bool install_service(void) { - char command[4096] = ""; + char command[4096] = "\""; char **argp; bool space; SERVICE_DESCRIPTION description = {"Virtual Private Network daemon"}; @@ -93,10 +93,8 @@ bool install_service(void) { return false; } - strncat(command, "\"", sizeof(command)); - if(!strchr(program_name, '\\')) { - GetCurrentDirectory(sizeof(command), command); + GetCurrentDirectory(sizeof(command) - 1, command + 1); strncat(command, "\\", sizeof(command)); } @@ -117,6 +115,8 @@ bool install_service(void) { strncat(command, "\"", sizeof(command)); } + logger(LOG_DEBUG, "Command: '%s'", command); + service = CreateService(manager, identname, identname, SERVICE_ALL_ACCESS, SERVICE_WIN32_OWN_PROCESS, SERVICE_AUTO_START, SERVICE_ERROR_NORMAL, command, "NDIS", NULL, NULL, NULL, NULL);