From 5b55b8414ffc8c45967267ed1c392b0ba7b00f7f Mon Sep 17 00:00:00 2001 From: "William A. Rowe Jr" Date: Wed, 5 Jun 2002 15:46:30 +0000 Subject: [PATCH] Solve the -k start bug [thanks for the pointers, FirstBill!] The answer was really trivial. Unlike all other cases where you expect to send argv[0] and get argv[0] in the created process, the service control manager (SCM) just don't work like that. StartService() argv passed must not include an element zero. Element zero is inserted by the SCM, containing the service name, without any help from the outside. Only reason this bug 'appeared' is that Jeff's patch introduced a bit of strictness to refuse arguments without a flag. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@95526 13f79535-47bb-0310-9956-ffa450edef68 --- server/mpm/winnt/service.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/server/mpm/winnt/service.c b/server/mpm/winnt/service.c index 93cfe5da29..4c99ea74fc 100644 --- a/server/mpm/winnt/service.c +++ b/server/mpm/winnt/service.c @@ -1057,11 +1057,8 @@ apr_status_t mpm_service_start(apr_pool_t *ptemp, int argc, return 0; } - argc += 1; start_argv = malloc((argc + 1) * sizeof(const char **)); - start_argv[0] = mpm_service_name; - if (argc > 1) - memcpy(start_argv + 1, argv, (argc - 1) * sizeof(const char **)); + memcpy(start_argv, argv, argc * sizeof(const char **)); start_argv[argc] = NULL; rv = APR_EINIT; -- 2.50.1