X-Git-Url: https://www.tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Fprocess.c;h=5566510d4e7dec693cdebbfb1b8c86c4b7aa3eb6;hp=c989532e26be0f14888e298354e0a88571cdb6fc;hb=691907caaeb348dee3dbe8a85f3590241f2cc992;hpb=f956a28147ec8596c9a51b0c1535bb4b8c87692c diff --git a/src/process.c b/src/process.c index c989532e..5566510d 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.65 2003/08/08 14:48:33 guus Exp $ + $Id: process.c,v 1.1.2.66 2003/08/08 17:17:13 guus Exp $ */ #include "system.h" @@ -84,6 +84,7 @@ static SERVICE_STATUS_HANDLE statushandle = 0; bool install_service(void) { char command[4096] = ""; char **argp; + bool space; manager = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS); if(!manager) { @@ -98,8 +99,13 @@ bool install_service(void) { strncat(command, program_name, sizeof(command)); for(argp = g_argv + 1; *argp; argp++) { + space = strchr(*argp, " "); strncat(command, " ", sizeof(command)); + if(space) + strncat(command, "\"", sizeof(command)); strncat(command, *argp, sizeof(command)); + if(space) + strncat(command, "\"", sizeof(command)); } service = CreateService(manager, identname, identname,