From 5491187e1d1dbe26b9f7c051fe3182da497eafce Mon Sep 17 00:00:00 2001 From: Bill Zissimopoulos Date: Fri, 13 May 2016 10:42:23 -0700 Subject: [PATCH] launcher, launchctl: command line arguments are now numbered %1 to %9 --- src/launcher/launchctl.c | 2 +- src/launcher/launcher.c | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/launcher/launchctl.c b/src/launcher/launchctl.c index e3a94455..b0f21844 100644 --- a/src/launcher/launchctl.c +++ b/src/launcher/launchctl.c @@ -210,7 +210,7 @@ int wmain(int argc, wchar_t **argv) if (0 == lstrcmpW(L"start", argv[0])) { - if (3 > argc || argc > 12) + if (3 > argc || argc > 11) usage(); return start(PipeBuf, PIPE_BUFFER_SIZE, argv[1], argv[2], argc - 3, argv + 3); diff --git a/src/launcher/launcher.c b/src/launcher/launcher.c index c8b22c06..b93a0970 100644 --- a/src/launcher/launcher.c +++ b/src/launcher/launcher.c @@ -96,8 +96,8 @@ static NTSTATUS SvcInstanceReplaceArguments(PWSTR String, ULONG Argc, PWSTR *Arg { case L'%': P++; - if (L'0' <= *P && *P <= '9' && Argc > (ULONG)(*P - L'0')) - Length += SvcInstanceArgumentLength(Argv[*P - L'0']); + if (L'1' <= *P && *P <= '9' && Argc > (ULONG)(*P - L'1')) + Length += SvcInstanceArgumentLength(Argv[*P - L'1']); break; default: Length++; @@ -116,8 +116,8 @@ static NTSTATUS SvcInstanceReplaceArguments(PWSTR String, ULONG Argc, PWSTR *Arg { case L'%': P++; - if (L'0' <= *P && *P <= '9' && Argc > (ULONG)(*P - L'0')) - Q = SvcInstanceArgumentCopy(Q, Argv[*P - L'0']); + if (L'1' <= *P && *P <= '9' && Argc > (ULONG)(*P - L'1')) + Q = SvcInstanceArgumentCopy(Q, Argv[*P - L'1']); break; default: Q++; @@ -708,7 +708,7 @@ static VOID SvcPipeTransact(HANDLE ClientToken, PWSTR PipeBuf, PULONG PSize) PWSTR P = PipeBuf, PipeBufEnd = PipeBuf + *PSize / sizeof(WCHAR); PWSTR ClassName, InstanceName; - ULONG Argc; PWSTR Argv[10]; + ULONG Argc; PWSTR Argv[9]; NTSTATUS Result; *PSize = 0; @@ -718,7 +718,7 @@ static VOID SvcPipeTransact(HANDLE ClientToken, PWSTR PipeBuf, PULONG PSize) case LauncherSvcInstanceStart: ClassName = SvcPipeTransactGetPart(&P, PipeBufEnd); InstanceName = SvcPipeTransactGetPart(&P, PipeBufEnd); - for (Argc = 0; 10 > Argc; Argc++) + for (Argc = 0; sizeof Argv / sizeof Argv[0] > Argc; Argc++) if (0 == (Argv[Argc] = SvcPipeTransactGetPart(&P, PipeBufEnd))) break;