From 9971472be7cf76df7af139e14160f82ca1a81898 Mon Sep 17 00:00:00 2001 From: Bill Zissimopoulos Date: Sun, 15 May 2016 11:22:19 -0700 Subject: [PATCH] launcher, launchctl: ensure that they build under all platforms/configurations --- src/launcher/launchctl.c | 10 +++++----- src/launcher/launcher.c | 8 +++++--- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/launcher/launchctl.c b/src/launcher/launchctl.c index 3ca4b454..b9d68d06 100644 --- a/src/launcher/launchctl.c +++ b/src/launcher/launchctl.c @@ -19,11 +19,11 @@ #define PROGNAME "launchctl" -#define info(format, ...) log(GetStdHandle(STD_OUTPUT_HANDLE), format, __VA_ARGS__) -#define warn(format, ...) log(GetStdHandle(STD_ERROR_HANDLE), format, __VA_ARGS__) +#define info(format, ...) printlog(GetStdHandle(STD_OUTPUT_HANDLE), format, __VA_ARGS__) +#define warn(format, ...) printlog(GetStdHandle(STD_ERROR_HANDLE), format, __VA_ARGS__) #define fatal(ExitCode, format, ...) (warn(format, __VA_ARGS__), ExitProcess(ExitCode)) -static void vlog(HANDLE h, const char *format, va_list ap) +static void vprintlog(HANDLE h, const char *format, va_list ap) { char buf[1024]; /* wvsprintf is only safe with a 1024 byte buffer */ @@ -39,12 +39,12 @@ static void vlog(HANDLE h, const char *format, va_list ap) WriteFile(h, buf, (DWORD)len, &BytesTransferred, 0); } -static void log(HANDLE h, const char *format, ...) +static void printlog(HANDLE h, const char *format, ...) { va_list ap; va_start(ap, format); - vlog(h, format, ap); + vprintlog(h, format, ap); va_end(ap); } diff --git a/src/launcher/launcher.c b/src/launcher/launcher.c index e09b5478..2d3ec8df 100644 --- a/src/launcher/launcher.c +++ b/src/launcher/launcher.c @@ -239,7 +239,7 @@ NTSTATUS SvcInstanceCreate(HANDLE ClientToken, HKEY RegKey = 0; DWORD RegResult, RegSize; DWORD ClassNameSize, InstanceNameSize; - WCHAR Executable[MAX_PATH], CommandLineBuf[512] = L"%0 ", SecurityBuf[512] = L"O:SYG:SY"; + WCHAR Executable[MAX_PATH], CommandLineBuf[512], SecurityBuf[512]; PWSTR CommandLine, Security; DWORD JobControl; PSECURITY_DESCRIPTOR SecurityDescriptor; @@ -250,10 +250,12 @@ NTSTATUS SvcInstanceCreate(HANDLE ClientToken, *PSvcInstance = 0; + lstrcpyW(CommandLineBuf, L"%0 "); + lstrcpyW(SecurityBuf, L"O:SYG:SY"); + if (Argc > sizeof Argv / sizeof Argv[0] - 1) Argc = sizeof Argv / sizeof Argv[0] - 1; - for (ULONG Argi = 0; Argc > Argi; Argi++) - Argv[Argi + 1] = Argv0[Argi]; + memcpy(Argv + 1, Argv0, Argc * sizeof(PWSTR)); Argv[0] = 0; Argc++;