From 35530c50ef70d64f271e54f32ea2c19be566cf55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torbj=C3=B6rn=20Svensson?= Date: Sun, 1 Nov 2020 20:35:18 +0100 Subject: [PATCH] Bug 568079: Rework spawner to avoid memory leaks on Win32 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I1253351d47d52e848867d7f9df61a66f9bd82d41 Signed-off-by: Torbjörn Svensson --- .../native_src/win/Win32ProcessEx.c | 746 ++++++++---------- .../native_src/win/starter.c | 324 ++++---- .../native_src/win/util.c | 64 ++ .../native_src/win/util.h | 17 + .../os/win32/x86_64/pty.dll | Bin 1037433 -> 1037980 bytes .../os/win32/x86_64/spawner.dll | Bin 335721 -> 334776 bytes .../os/win32/x86_64/starter.exe | Bin 402292 -> 402854 bytes 7 files changed, 578 insertions(+), 573 deletions(-) diff --git a/core/org.eclipse.cdt.core.native/native_src/win/Win32ProcessEx.c b/core/org.eclipse.cdt.core.native/native_src/win/Win32ProcessEx.c index 38959c98125..feaf4faca5a 100644 --- a/core/org.eclipse.cdt.core.native/native_src/win/Win32ProcessEx.c +++ b/core/org.eclipse.cdt.core.native/native_src/win/Win32ProcessEx.c @@ -36,6 +36,11 @@ #define MAX_PROCS (100) // Maximum number of simultaneously running processes +typedef struct _eventInfo { + HANDLE handle; + wchar_t *name; +} EventInfo_t; + // Process description block. Should be created for each launched process typedef struct _procInfo { int pid; // Process ID @@ -43,15 +48,15 @@ typedef struct _procInfo { // (actually this impossible from OS point of view but it is still possible // a clash of new created and already finished process with one and the same PID. // 4 events connected to this process (see starter) - HANDLE eventBreak; // signaled when Spawner.interrupt() is called; mildest of the terminate requests (SIGINT signal - // in UNIX world) - HANDLE eventWait; - HANDLE eventTerminate; // signaled when Spawner.terminate() is called; more forceful terminate request (SIGTERM - // signal in UNIX world) - HANDLE eventKill; // signaled when Spawner.kill() is called; most forceful terminate request (SIGKILL signal in UNIX - // world) - HANDLE eventCtrlc; // signaled when Spawner.interruptCTRLC() is called; like interrupt() but sends CTRL-C in all - // cases, even when inferior is a Cygwin program + EventInfo_t eventBreak; // signaled when Spawner.interrupt() is called; mildest of the terminate requests (SIGINT + // signal in UNIX world) + EventInfo_t eventWait; + EventInfo_t eventTerminate; // signaled when Spawner.terminate() is called; more forceful terminate request (SIGTERM + // signal in UNIX world) + EventInfo_t eventKill; // signaled when Spawner.kill() is called; most forceful terminate request (SIGKILL signal in + // UNIX world) + EventInfo_t eventCtrlc; // signaled when Spawner.interruptCTRLC() is called; like interrupt() but sends CTRL-C in + // all cases, even when inferior is a Cygwin program } procInfo_t, *pProcInfo_t; static int procCounter = 0; // Number of running processes @@ -68,9 +73,6 @@ pProcInfo_t findProcInfo(int pid); // We launch separate thread for each project to trap it termination void _cdecl waitProcTermination(void *pv); -// This is a helper function to prevent losing of quotation marks -static int copyTo(wchar_t *target, const wchar_t *source, int cpyLenght, int availSpace); - // Use this function to clean project descriptor and return it to the pool of available blocks. static void cleanUpProcBlock(pProcInfo_t pCurProcInfo); @@ -113,20 +115,217 @@ extern "C" return -1; } -void ensureSize(wchar_t **ptr, int *psize, int requiredLength) { - int size = *psize; - if (requiredLength > size) { - size = 2 * size; - if (size < requiredLength) { - size = requiredLength; +static bool createStandardNamedPipe(HANDLE *handle, DWORD stdHandle, int pid, int counter) { + wchar_t pipeName[PIPE_NAME_LENGTH]; + DWORD dwOpenMode; + + switch (stdHandle) { + case STD_INPUT_HANDLE: + BUILD_PIPE_NAME(pipeName, L"stdin", pid, counter); + dwOpenMode = PIPE_ACCESS_OUTBOUND; + break; + case STD_OUTPUT_HANDLE: + BUILD_PIPE_NAME(pipeName, L"stdout", pid, counter); + dwOpenMode = PIPE_ACCESS_INBOUND | FILE_FLAG_OVERLAPPED; + break; + case STD_ERROR_HANDLE: + BUILD_PIPE_NAME(pipeName, L"stderr", pid, counter); + dwOpenMode = PIPE_ACCESS_INBOUND | FILE_FLAG_OVERLAPPED; + break; + default: + if (isTraceEnabled(CDT_TRACE_MONITOR)) { + cdtTrace(L"Invalid STD handle given %i", stdHandle); } - *ptr = (wchar_t *)realloc(*ptr, size * sizeof(wchar_t)); - if (*ptr) { - *psize = size; + return false; + } + + HANDLE pipe = CreateNamedPipeW(pipeName, dwOpenMode, PIPE_TYPE_BYTE | PIPE_READMODE_BYTE | PIPE_WAIT, + PIPE_UNLIMITED_INSTANCES, PIPE_SIZE, PIPE_SIZE, PIPE_TIMEOUT, NULL); + if (INVALID_HANDLE_VALUE == pipe) { + if (isTraceEnabled(CDT_TRACE_MONITOR)) { + cdtTrace(L"Failed to create named pipe: %s\n", pipeName); + } + return false; + } + + SetHandleInformation(pipe, HANDLE_FLAG_INHERIT, TRUE); + + if (isTraceEnabled(CDT_TRACE_MONITOR)) { + cdtTrace(L"Successfully created pipe %s -> %p\n", pipeName, pipe); + } + + *handle = pipe; + return true; +} + +static bool createNamedEvent(EventInfo_t *eventInfo, BOOL manualReset, const wchar_t *prefix, int pid, int counter) { + wchar_t eventName[50]; + swprintf(eventName, sizeof(eventName) / sizeof(eventName[0]), L"%s%04x%08x", prefix, pid, counter); + + HANDLE event = CreateEventW(NULL, manualReset, FALSE, eventName); + if (!event) { + if (isTraceEnabled(CDT_TRACE_MONITOR)) { + cdtTrace(L"Failed to create event %s -> %i\n", eventName, GetLastError()); + } + return false; + } else if (GetLastError() == ERROR_ALREADY_EXISTS) { + if (isTraceEnabled(CDT_TRACE_MONITOR)) { + cdtTrace(L"Event %s already exist -> %p\n", eventName, event); + } + return false; + } + + eventInfo->handle = event; + eventInfo->name = wcsdup(eventName); + + if (!eventInfo->name) { + if (isTraceEnabled(CDT_TRACE_MONITOR)) { + cdtTrace(L"Failed to allocate memory for event %s -> %p\n", eventName, event); + } + return false; + } + + if (isTraceEnabled(CDT_TRACE_MONITOR)) { + cdtTrace(L"Successfully created event %s -> %p\n", eventName, event); + } + + return true; +} + +static bool createCommandLine(JNIEnv *env, jobjectArray cmdarray, wchar_t **cmdLine, const wchar_t *fmt, ...) { + va_list ap; + + va_start(ap, fmt); + + wchar_t *buffer = NULL; + int size = MAX_CMD_SIZE; + int required = 0; + do { + // Free previous buffer + free(buffer); + + size *= 2; + buffer = (wchar_t *)malloc(size * sizeof(wchar_t)); + + if (buffer) { + // Try to format the string + required = vswprintf(buffer, size, fmt, ap); } else { - *psize = 0; + // malloc failed, clean up and return + va_end(ap); + ThrowByName(env, "java/io/IOException", "Not enough memory"); + return false; + } + } while (size <= required); + va_end(ap); + + int nPos = wcslen(buffer); + int nCmdTokens = (*env)->GetArrayLength(env, cmdarray); + for (int i = 0; i < nCmdTokens; ++i) { + jstring item = (jstring)(*env)->GetObjectArrayElement(env, cmdarray, i); + jsize len = (*env)->GetStringLength(env, item); + const jchar *str = (*env)->GetStringChars(env, item, NULL); + if (str) { + required = nPos + len + 2; // 2 => space + \0 + if (required > 32 * 1024) { + free(buffer); + ThrowByName(env, "java/io/IOException", "Command line too long"); + return false; + } + + while (1) { + // Ensure enough space in buffer + if (required > size) { + size *= 2; + if (size < required) { + size = required; + } + + wchar_t *tmp = (wchar_t *)realloc(buffer, size * sizeof(wchar_t)); + if (tmp) { + // Allocation successful + buffer = tmp; + } else { + // Failed to realloc memory + free(buffer); + ThrowByName(env, "java/io/IOException", "Not enough memory"); + return false; + } + } + + int nCpyLen = copyTo(buffer + nPos, (const wchar_t *)str, len, size - nPos); + if (nCpyLen < 0) { // Buffer too small + // Do a real count of number of chars required + required = nPos + copyTo(NULL, (const wchar_t *)str, len, INT_MAX) + 2; // 2 => space + \0 + continue; + } + + // Buffer was big enough. + nPos += nCpyLen; + break; + } + + buffer[nPos++] = _T(' '); + buffer[nPos] = _T('\0'); + (*env)->ReleaseStringChars(env, item, str); + } else { + free(buffer); + ThrowByName(env, "java/io/IOException", "Command line contained null string"); + return false; } } + + *cmdLine = buffer; + return true; +} + +static bool createEnvironmentBlock(JNIEnv *env, jobjectArray envp, wchar_t **block) { + int nEnvVars = (*env)->GetArrayLength(env, envp); + + if (isTraceEnabled(CDT_TRACE_MONITOR)) { + cdtTrace(L"There are %i environment variables \n", nEnvVars); + } + + if (nEnvVars == 0) { + *block = NULL; + return true; + } + + int nPos = 0; + int nBlkSize = MAX_ENV_SIZE; + wchar_t *buffer = (wchar_t *)malloc(nBlkSize * sizeof(wchar_t)); + for (int i = 0; i < nEnvVars; ++i) { + jstring item = (jstring)(*env)->GetObjectArrayElement(env, envp, i); + jsize len = (*env)->GetStringLength(env, item); + const jchar *str = (*env)->GetStringChars(env, item, 0); + if (str) { + while (nBlkSize - nPos <= len + 2) { // +2 for two '\0' + nBlkSize += MAX_ENV_SIZE; + wchar_t *tmp = (wchar_t *)realloc(buffer, nBlkSize * sizeof(wchar_t)); + if (tmp) { + buffer = tmp; + } else { + free(buffer); + ThrowByName(env, "java/io/IOException", "Not enough memory"); + return false; + } + if (isTraceEnabled(CDT_TRACE_MONITOR)) { + cdtTrace(L"Realloc environment block; new length is %i \n", nBlkSize); + } + } + if (isTraceEnabled(CDT_TRACE_MONITOR)) { + cdtTrace(L"%s\n", (const wchar_t *)str); + } + wcsncpy(buffer + nPos, (const wchar_t *)str, len); + nPos += len; + buffer[nPos++] = _T('\0'); + (*env)->ReleaseStringChars(env, item, str); + } + } + buffer[nPos] = _T('\0'); + *block = buffer; + + return true; } #ifdef __cplusplus @@ -135,202 +334,95 @@ extern "C" JNIEXPORT jint JNICALL Java_org_eclipse_cdt_utils_spawner_Spawner_exec0(JNIEnv *env, jobject process, jobjectArray cmdarray, jobjectArray envp, jstring dir, jobjectArray channels) { - HANDLE stdHandles[3]; - PROCESS_INFORMATION pi = {0}, *piCopy; - STARTUPINFOW si; - DWORD flags = 0; - wchar_t *cwd = NULL; - int ret = 0; - int nCmdLineLength = 0; - wchar_t *szCmdLine = 0; - int nBlkSize = MAX_ENV_SIZE; - wchar_t *szEnvBlock = NULL; - jsize nCmdTokens = 0; - jsize nEnvVars = 0; - DWORD pid = GetCurrentProcessId(); - int nPos; - pProcInfo_t pCurProcInfo; - - // This needs to be big enough to contain the name of the event used when calling CreateEventW bellow. - // It is made of a prefix (7 characters max) plus the value of a pointer that gets output in characters. - // This will be bigger in the case of 64 bit. - static const int MAX_EVENT_NAME_LENGTH = 50; - wchar_t eventBreakName[MAX_EVENT_NAME_LENGTH]; - wchar_t eventWaitName[MAX_EVENT_NAME_LENGTH]; - wchar_t eventTerminateName[MAX_EVENT_NAME_LENGTH]; - wchar_t eventKillName[MAX_EVENT_NAME_LENGTH]; - wchar_t eventCtrlcName[MAX_EVENT_NAME_LENGTH]; - int nLocalCounter; - wchar_t inPipeName[PIPE_NAME_LENGTH]; - wchar_t outPipeName[PIPE_NAME_LENGTH]; - wchar_t errPipeName[PIPE_NAME_LENGTH]; - jclass channelClass = NULL; - jmethodID channelConstructor = NULL; - if (!channels) { ThrowByName(env, "java/io/IOException", "Channels can't be null"); return 0; } - channelClass = (*env)->FindClass(env, "org/eclipse/cdt/utils/spawner/Spawner$WinChannel"); + jclass channelClass = (*env)->FindClass(env, "org/eclipse/cdt/utils/spawner/Spawner$WinChannel"); if (!channelClass) { ThrowByName(env, "java/io/IOException", "Unable to find channel class"); return 0; } - channelConstructor = (*env)->GetMethodID(env, channelClass, "", "(J)V"); + jmethodID channelConstructor = (*env)->GetMethodID(env, channelClass, "", "(J)V"); if (!channelConstructor) { ThrowByName(env, "java/io/IOException", "Unable to find channel constructor"); return 0; } - nCmdLineLength = MAX_CMD_SIZE; - szCmdLine = (wchar_t *)malloc(nCmdLineLength * sizeof(wchar_t)); - szCmdLine[0] = _T('\0'); if ((HIBYTE(LOWORD(GetVersion()))) & 0x80) { ThrowByName(env, "java/io/IOException", "Does not support Windows 3.1/95/98/Me"); return 0; } - if (cmdarray == 0) { + if (!cmdarray) { ThrowByName(env, "java/lang/NullPointerException", "No command line specified"); return 0; } - ZeroMemory(stdHandles, sizeof(stdHandles)); + DWORD pid = GetCurrentProcessId(); // Create pipe names EnterCriticalSection(&cs); - swprintf(inPipeName, sizeof(inPipeName) / sizeof(inPipeName[0]), L"\\\\.\\pipe\\stdin%08i%010i", pid, nCounter); - swprintf(outPipeName, sizeof(outPipeName) / sizeof(outPipeName[0]), L"\\\\.\\pipe\\stdout%08i%010i", pid, nCounter); - swprintf(errPipeName, sizeof(errPipeName) / sizeof(errPipeName[0]), L"\\\\.\\pipe\\stderr%08i%010i", pid, nCounter); - nLocalCounter = nCounter; - ++nCounter; + int nLocalCounter = nCounter++; LeaveCriticalSection(&cs); - if ((INVALID_HANDLE_VALUE == (stdHandles[0] = CreateNamedPipeW( - inPipeName, PIPE_ACCESS_OUTBOUND, PIPE_TYPE_BYTE | PIPE_READMODE_BYTE | PIPE_WAIT, - PIPE_UNLIMITED_INSTANCES, PIPE_SIZE, PIPE_SIZE, PIPE_TIMEOUT, NULL))) || - (INVALID_HANDLE_VALUE == - (stdHandles[1] = CreateNamedPipeW(outPipeName, PIPE_ACCESS_INBOUND | FILE_FLAG_OVERLAPPED, - PIPE_TYPE_BYTE | PIPE_READMODE_BYTE | PIPE_WAIT, PIPE_UNLIMITED_INSTANCES, - PIPE_SIZE, PIPE_SIZE, PIPE_TIMEOUT, NULL))) || - (INVALID_HANDLE_VALUE == - (stdHandles[2] = CreateNamedPipeW(errPipeName, PIPE_ACCESS_INBOUND | FILE_FLAG_OVERLAPPED, - PIPE_TYPE_BYTE | PIPE_READMODE_BYTE | PIPE_WAIT, PIPE_UNLIMITED_INSTANCES, - PIPE_SIZE, PIPE_SIZE, PIPE_TIMEOUT, NULL)))) { - CloseHandle(stdHandles[0]); - CloseHandle(stdHandles[1]); - CloseHandle(stdHandles[2]); + HANDLE stdHandles[] = {INVALID_HANDLE_VALUE, INVALID_HANDLE_VALUE, INVALID_HANDLE_VALUE}; + if (!createStandardNamedPipe(&stdHandles[0], STD_INPUT_HANDLE, pid, nLocalCounter) || + !createStandardNamedPipe(&stdHandles[1], STD_OUTPUT_HANDLE, pid, nLocalCounter) || + !createStandardNamedPipe(&stdHandles[2], STD_ERROR_HANDLE, pid, nLocalCounter)) { + CLOSE_HANDLES(stdHandles); ThrowByName(env, "java/io/IOException", "CreatePipe"); return 0; } - if (isTraceEnabled(CDT_TRACE_MONITOR)) { - cdtTrace(L"Opened pipes: %s, %s, %s\n", inPipeName, outPipeName, errPipeName); - } - - nCmdTokens = (*env)->GetArrayLength(env, cmdarray); - nEnvVars = (*env)->GetArrayLength(env, envp); - - pCurProcInfo = createProcInfo(); - + pProcInfo_t pCurProcInfo = createProcInfo(); if (!pCurProcInfo) { + CLOSE_HANDLES(stdHandles); ThrowByName(env, "java/io/IOException", "Too many processes"); return 0; } - // Construct starter's command line - swprintf(eventBreakName, sizeof(eventBreakName) / sizeof(eventBreakName[0]), L"SABreak%04x%08x", pid, - nLocalCounter); - swprintf(eventWaitName, sizeof(eventWaitName) / sizeof(eventWaitName[0]), L"SAWait%04x%08x", pid, nLocalCounter); - swprintf(eventTerminateName, sizeof(eventTerminateName) / sizeof(eventTerminateName[0]), L"SATerm%04x%08x", pid, - nLocalCounter); - swprintf(eventKillName, sizeof(eventKillName) / sizeof(eventKillName[0]), L"SAKill%04x%08x", pid, nLocalCounter); - swprintf(eventCtrlcName, sizeof(eventCtrlcName) / sizeof(eventCtrlcName[0]), L"SACtrlc%04x%08x", pid, - nLocalCounter); - - pCurProcInfo->eventBreak = CreateEventW(NULL, FALSE, FALSE, eventBreakName); - if (!pCurProcInfo->eventBreak || GetLastError() == ERROR_ALREADY_EXISTS) { + // Create events + if (!createNamedEvent(&pCurProcInfo->eventBreak, FALSE, L"SABreak", pid, nLocalCounter) || + !createNamedEvent(&pCurProcInfo->eventWait, TRUE, L"SAWait", pid, nLocalCounter) || + !createNamedEvent(&pCurProcInfo->eventTerminate, FALSE, L"SATerm", pid, nLocalCounter) || + !createNamedEvent(&pCurProcInfo->eventKill, FALSE, L"SAKill", pid, nLocalCounter) || + !createNamedEvent(&pCurProcInfo->eventCtrlc, FALSE, L"SACtrlc", pid, nLocalCounter)) { + cleanUpProcBlock(pCurProcInfo); + CLOSE_HANDLES(stdHandles); ThrowByName(env, "java/io/IOException", "Cannot create event"); return 0; } - pCurProcInfo->eventWait = CreateEventW(NULL, TRUE, FALSE, eventWaitName); - pCurProcInfo->eventTerminate = CreateEventW(NULL, FALSE, FALSE, eventTerminateName); - pCurProcInfo->eventKill = CreateEventW(NULL, FALSE, FALSE, eventKillName); - pCurProcInfo->eventCtrlc = CreateEventW(NULL, FALSE, FALSE, eventCtrlcName); - - swprintf(szCmdLine, nCmdLineLength, L"\"%sstarter.exe\" %i %i %s %s %s %s %s ", path, pid, nLocalCounter, - eventBreakName, eventWaitName, eventTerminateName, eventKillName, eventCtrlcName); - nPos = wcslen(szCmdLine); // Prepare command line - for (int i = 0; i < nCmdTokens; ++i) { - jstring item = (jstring)(*env)->GetObjectArrayElement(env, cmdarray, i); - jsize len = (*env)->GetStringLength(env, item); - int nCpyLen; - const wchar_t *str = (const wchar_t *)(*env)->GetStringChars(env, item, 0); - if (str) { - int requiredSize = nPos + len + 2; - if (requiredSize > 32 * 1024) { - ThrowByName(env, "java/io/IOException", "Command line too long"); - return 0; - } - ensureSize(&szCmdLine, &nCmdLineLength, requiredSize); - if (!szCmdLine) { - ThrowByName(env, "java/io/IOException", "Not enough memory"); - return 0; - } - - if (0 > (nCpyLen = copyTo(szCmdLine + nPos, str, len, nCmdLineLength - nPos))) { - ThrowByName(env, "java/io/IOException", "Command line too long"); - return 0; - } - nPos += nCpyLen; - szCmdLine[nPos] = _T(' '); - ++nPos; - (*env)->ReleaseStringChars(env, item, (const jchar *)str); - } - } - szCmdLine[nPos] = _T('\0'); - - if (isTraceEnabled(CDT_TRACE_MONITOR)) { - cdtTrace(L"There are %i environment variables \n", nEnvVars); + wchar_t *cmdLine = NULL; + if (!createCommandLine(env, cmdarray, &cmdLine, L"\"%sstarter.exe\" %i %i %s %s %s %s %s ", path, // + pid, // + nLocalCounter, // + pCurProcInfo->eventBreak.name, // + pCurProcInfo->eventWait.name, // + pCurProcInfo->eventTerminate.name, // + pCurProcInfo->eventKill.name, // + pCurProcInfo->eventCtrlc.name)) { + // Exception already thrown, just clean up + cleanUpProcBlock(pCurProcInfo); + CLOSE_HANDLES(stdHandles); + return 0; } // Prepare environment block - if (nEnvVars > 0) { - nPos = 0; - szEnvBlock = (wchar_t *)malloc(nBlkSize * sizeof(wchar_t)); - for (int i = 0; i < nEnvVars; ++i) { - jstring item = (jstring)(*env)->GetObjectArrayElement(env, envp, i); - jsize len = (*env)->GetStringLength(env, item); - const wchar_t *str = (const wchar_t *)(*env)->GetStringChars(env, item, 0); - if (str) { - while ((nBlkSize - nPos) <= (len + 2)) { // +2 for two '\0' - nBlkSize += MAX_ENV_SIZE; - szEnvBlock = (wchar_t *)realloc(szEnvBlock, nBlkSize * sizeof(wchar_t)); - if (!szEnvBlock) { - ThrowByName(env, "java/io/IOException", "Not enough memory"); - return 0; - } - if (isTraceEnabled(CDT_TRACE_MONITOR)) { - cdtTrace(L"Realloc environment block; new length is %i \n", nBlkSize); - } - } - if (isTraceEnabled(CDT_TRACE_MONITOR)) { - cdtTrace(L"%s\n", str); - } - wcsncpy(szEnvBlock + nPos, str, len); - nPos += len; - szEnvBlock[nPos] = _T('\0'); - ++nPos; - (*env)->ReleaseStringChars(env, item, (const jchar *)str); - } - } - szEnvBlock[nPos] = _T('\0'); + wchar_t *envBlock = NULL; + if (!createEnvironmentBlock(env, envp, &envBlock)) { + // Exception already thrown, just clean up + free(cmdLine); + cleanUpProcBlock(pCurProcInfo); + CLOSE_HANDLES(stdHandles); + return 0; } + wchar_t *cwd = NULL; if (dir) { const jchar *str = (*env)->GetStringChars(env, dir, NULL); if (str) { @@ -339,68 +431,54 @@ extern "C" } } + STARTUPINFOW si; ZeroMemory(&si, sizeof(si)); si.cb = sizeof(si); si.dwFlags |= STARTF_USESHOWWINDOW; si.wShowWindow = SW_HIDE; // Processes in the Process Group are hidden - SetHandleInformation(stdHandles[0], HANDLE_FLAG_INHERIT, FALSE); - SetHandleInformation(stdHandles[1], HANDLE_FLAG_INHERIT, FALSE); - SetHandleInformation(stdHandles[2], HANDLE_FLAG_INHERIT, FALSE); - - flags = CREATE_NEW_CONSOLE; + DWORD flags = CREATE_NEW_CONSOLE; flags |= CREATE_NO_WINDOW; flags |= CREATE_UNICODE_ENVIRONMENT; if (isTraceEnabled(CDT_TRACE_MONITOR)) { - cdtTrace(szCmdLine); + cdtTrace(cmdLine); } + // launches starter; we need it to create another console group to correctly process // emulation of SYSint signal (Ctrl-C) - ret = CreateProcessW(0, /* executable name */ - szCmdLine, /* command line */ - 0, /* process security attribute */ - 0, /* thread security attribute */ - FALSE, /* inherits system handles */ - flags, /* normal attached process */ - szEnvBlock, /* environment block */ - cwd, /* change to the new current directory */ - &si, /* (in) startup information */ - &pi); /* (out) process information */ + PROCESS_INFORMATION pi = {0}; + int ret = CreateProcessW(NULL, /* executable name */ + cmdLine, /* command line */ + 0, /* process security attribute */ + 0, /* thread security attribute */ + FALSE, /* inherits system handles */ + flags, /* normal attached process */ + envBlock, /* environment block */ + cwd, /* change to the new current directory */ + &si, /* (in) startup information */ + &pi); /* (out) process information */ free(cwd); - free(szEnvBlock); - free(szCmdLine); + free(envBlock); + free(cmdLine); - if (!ret) { // Launching error - char *lpMsgBuf; - CloseHandle(stdHandles[0]); - CloseHandle(stdHandles[1]); - CloseHandle(stdHandles[2]); - FormatMessageA(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, - NULL, GetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language - (char *)&lpMsgBuf, 0, NULL); - ThrowByName(env, "java/io/IOException", lpMsgBuf); - // Free the buffer. - LocalFree(lpMsgBuf); - cleanUpProcBlock(pCurProcInfo); - ret = -1; - } else { + if (ret) { HANDLE h[2]; - int what; EnterCriticalSection(&cs); pCurProcInfo->pid = pi.dwProcessId; - h[0] = pCurProcInfo->eventWait; + h[0] = pCurProcInfo->eventWait.handle; h[1] = pi.hProcess; - what = WaitForMultipleObjects(2, h, FALSE, INFINITE); + int what = WaitForMultipleObjects(2, h, FALSE, INFINITE); if (what != WAIT_OBJECT_0) { // CreateProcess failed if (isTraceEnabled(CDT_TRACE_MONITOR)) { cdtTrace(L"Process %i failed\n", pi.dwProcessId); } cleanUpProcBlock(pCurProcInfo); + CLOSE_HANDLES(stdHandles); ThrowByName(env, "java/io/IOException", "Launching failed"); if (isTraceEnabled(CDT_TRACE_MONITOR)) { cdtTrace(L"Process failed\n"); @@ -416,7 +494,7 @@ extern "C" // do the cleanup so launch the according thread // create a copy of the PROCESS_INFORMATION as this might get destroyed - piCopy = (PROCESS_INFORMATION *)malloc(sizeof(PROCESS_INFORMATION)); + PROCESS_INFORMATION *piCopy = (PROCESS_INFORMATION *)malloc(sizeof(PROCESS_INFORMATION)); memcpy(piCopy, &pi, sizeof(PROCESS_INFORMATION)); _beginthread(waitProcTermination, 0, (void *)piCopy); @@ -425,6 +503,17 @@ extern "C" } } LeaveCriticalSection(&cs); + } else { // Launching error + char *lpMsgBuf; + CLOSE_HANDLES(stdHandles); + FormatMessageA(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, GetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language + (char *)&lpMsgBuf, 0, NULL); + ThrowByName(env, "java/io/IOException", lpMsgBuf); + // Free the buffer. + LocalFree(lpMsgBuf); + cleanUpProcBlock(pCurProcInfo); + ret = -1; } CloseHandle(pi.hThread); @@ -446,94 +535,21 @@ extern "C" Java_org_eclipse_cdt_utils_spawner_Spawner_exec1(JNIEnv *env, jobject process, jobjectArray cmdarray, jobjectArray envp, jstring dir) { - SECURITY_ATTRIBUTES sa; - PROCESS_INFORMATION pi = {0}; - STARTUPINFOW si; - DWORD flags = 0; - wchar_t *cwd = NULL; - wchar_t *envBlk = NULL; - int ret = 0; - jsize nCmdTokens = 0; - jsize nEnvVars = 0; - int i; - int nPos; - int nCmdLineLength = 0; - wchar_t *szCmdLine = 0; - int nBlkSize = MAX_ENV_SIZE; - wchar_t *szEnvBlock = NULL; - - nCmdLineLength = MAX_CMD_SIZE; - szCmdLine = (wchar_t *)malloc(nCmdLineLength * sizeof(wchar_t)); - szCmdLine[0] = 0; - - sa.nLength = sizeof(sa); - sa.lpSecurityDescriptor = 0; - sa.bInheritHandle = TRUE; - - nCmdTokens = (*env)->GetArrayLength(env, cmdarray); - nEnvVars = (*env)->GetArrayLength(env, envp); - - nPos = 0; - // Prepare command line - for (i = 0; i < nCmdTokens; ++i) { - jstring item = (jstring)(*env)->GetObjectArrayElement(env, cmdarray, i); - jsize len = (*env)->GetStringLength(env, item); - int nCpyLen; - const wchar_t *str = (const wchar_t *)(*env)->GetStringChars(env, item, 0); - if (str) { - int requiredSize = nPos + len + 2; - if (requiredSize > 32 * 1024) { - ThrowByName(env, "java/io/IOException", "Command line too long"); - return 0; - } - ensureSize(&szCmdLine, &nCmdLineLength, requiredSize); - if (!szCmdLine) { - ThrowByName(env, "java/io/IOException", "Not enough memory"); - return 0; - } - - if (0 > (nCpyLen = copyTo(szCmdLine + nPos, str, len, nCmdLineLength - nPos))) { - ThrowByName(env, "java/io/Exception", "Command line too long"); - return 0; - } - nPos += nCpyLen; - szCmdLine[nPos] = _T(' '); - ++nPos; - (*env)->ReleaseStringChars(env, item, (const jchar *)str); - } + wchar_t *cmdLine = NULL; + if (!createCommandLine(env, cmdarray, &cmdLine, L"")) { + // Exception already thrown + return 0; } - szCmdLine[nPos] = _T('\0'); - // Prepare environment block - if (nEnvVars > 0) { - szEnvBlock = (wchar_t *)malloc(nBlkSize * sizeof(wchar_t)); - nPos = 0; - for (i = 0; i < nEnvVars; ++i) { - jstring item = (jstring)(*env)->GetObjectArrayElement(env, envp, i); - jsize len = (*env)->GetStringLength(env, item); - const wchar_t *str = (const wchar_t *)(*env)->GetStringChars(env, item, 0); - if (str) { - while ((nBlkSize - nPos) <= (len + 2)) { // +2 for two '\0' - nBlkSize += MAX_ENV_SIZE; - szEnvBlock = (wchar_t *)realloc(szEnvBlock, nBlkSize * sizeof(wchar_t)); - if (!szEnvBlock) { - ThrowByName(env, "java/io/Exception", "Not enough memory"); - return 0; - } - } - wcsncpy(szEnvBlock + nPos, str, len); - nPos += len; - szEnvBlock[nPos] = _T('\0'); - ++nPos; - (*env)->ReleaseStringChars(env, item, (const jchar *)str); - } - } - szEnvBlock[nPos] = _T('\0'); - envBlk = szEnvBlock; + wchar_t *envBlock = NULL; + if (!createEnvironmentBlock(env, envp, &envBlock)) { + free(cmdLine); + return 0; } + wchar_t *cwd = NULL; if (dir) { const jchar *str = (*env)->GetStringChars(env, dir, NULL); if (str) { @@ -542,27 +558,35 @@ extern "C" } } + STARTUPINFOW si; ZeroMemory(&si, sizeof(si)); si.cb = sizeof(si); - flags = CREATE_NEW_CONSOLE; + DWORD flags = CREATE_NEW_CONSOLE; flags |= CREATE_UNICODE_ENVIRONMENT; - ret = CreateProcessW(0, /* executable name */ - szCmdLine, /* command line */ - 0, /* process security attribute */ - 0, /* thread security attribute */ - TRUE, /* inherits system handles */ - flags, /* normal attached process */ - envBlk, /* environment block */ - cwd, /* change to the new current directory */ - &si, /* (in) startup information */ - &pi); /* (out) process information */ + + PROCESS_INFORMATION pi = {0}; + int ret = CreateProcessW(NULL, /* executable name */ + cmdLine, /* command line */ + 0, /* process security attribute */ + 0, /* thread security attribute */ + TRUE, /* inherits system handles */ + flags, /* normal attached process */ + envBlock, /* environment block */ + cwd, /* change to the new current directory */ + &si, /* (in) startup information */ + &pi); /* (out) process information */ free(cwd); - free(szEnvBlock); - free(szCmdLine); + free(cmdLine); + free(envBlock); - if (!ret) { // error + if (ret) { + // Clean-up + CloseHandle(pi.hThread); + CloseHandle(pi.hProcess); + ret = (long)pi.dwProcessId; // hProcess; + } else { // error char *lpMsgBuf; FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, @@ -572,11 +596,6 @@ extern "C" // Free the buffer. LocalFree(lpMsgBuf); ret = -1; - } else { - // Clean-up - CloseHandle(pi.hThread); - CloseHandle(pi.hProcess); - ret = (long)pi.dwProcessId; // hProcess; } return ret; @@ -628,7 +647,7 @@ extern "C" if (isTraceEnabled(CDT_TRACE_MONITOR)) { cdtTrace(L"Spawner received TERM signal for process %i\n", pCurProcInfo->pid); } - SetEvent(pCurProcInfo->eventTerminate); + SetEvent(pCurProcInfo->eventTerminate.handle); if (isTraceEnabled(CDT_TRACE_MONITOR)) { cdtTrace(L"Spawner signaled TERM event\n"); } @@ -639,21 +658,21 @@ extern "C" if (isTraceEnabled(CDT_TRACE_MONITOR)) { cdtTrace(L"Spawner received KILL signal for process %i\n", pCurProcInfo->pid); } - SetEvent(pCurProcInfo->eventKill); + SetEvent(pCurProcInfo->eventKill.handle); if (isTraceEnabled(CDT_TRACE_MONITOR)) { cdtTrace(L"Spawner signaled KILL event\n"); } ret = 0; break; case SIG_INT: - ResetEvent(pCurProcInfo->eventWait); - SetEvent(pCurProcInfo->eventBreak); - ret = (WaitForSingleObject(pCurProcInfo->eventWait, 100) == WAIT_OBJECT_0); + ResetEvent(pCurProcInfo->eventWait.handle); + SetEvent(pCurProcInfo->eventBreak.handle); + ret = (WaitForSingleObject(pCurProcInfo->eventWait.handle, 100) == WAIT_OBJECT_0); break; case CTRLC: - ResetEvent(pCurProcInfo->eventWait); - SetEvent(pCurProcInfo->eventCtrlc); - ret = (WaitForSingleObject(pCurProcInfo->eventWait, 100) == WAIT_OBJECT_0); + ResetEvent(pCurProcInfo->eventWait.handle); + SetEvent(pCurProcInfo->eventCtrlc.handle); + ret = (WaitForSingleObject(pCurProcInfo->eventWait.handle, 100) == WAIT_OBJECT_0); break; default: break; @@ -772,27 +791,20 @@ pProcInfo_t findProcInfo(int uid) { // pCurProcInfo - pointer to descriptor to clean up // Return : no void cleanUpProcBlock(pProcInfo_t pCurProcInfo) { - if (0 != pCurProcInfo->eventBreak) { - CloseHandle(pCurProcInfo->eventBreak); - pCurProcInfo->eventBreak = 0; - } - if (0 != pCurProcInfo->eventWait) { - CloseHandle(pCurProcInfo->eventWait); - pCurProcInfo->eventWait = 0; - } - if (0 != pCurProcInfo->eventTerminate) { - CloseHandle(pCurProcInfo->eventTerminate); - pCurProcInfo->eventTerminate = 0; - } + EventInfo_t *eventInfos[] = { + &pCurProcInfo->eventBreak, &pCurProcInfo->eventWait, &pCurProcInfo->eventTerminate, + &pCurProcInfo->eventKill, &pCurProcInfo->eventCtrlc, + }; - if (0 != pCurProcInfo->eventKill) { - CloseHandle(pCurProcInfo->eventKill); - pCurProcInfo->eventKill = 0; - } + for (int i = 0; i < sizeof(eventInfos) / sizeof(eventInfos[0]); i++) { + EventInfo_t *p = eventInfos[i]; + if (p->handle) { + CloseHandle(p->handle); + p->handle = NULL; + } - if (0 != pCurProcInfo->eventCtrlc) { - CloseHandle(pCurProcInfo->eventCtrlc); - pCurProcInfo->eventCtrlc = 0; + free(p->name); + p->name = NULL; } pCurProcInfo->pid = 0; @@ -822,69 +834,3 @@ void _cdecl waitProcTermination(void *pv) { free(pi); } - -///////////////////////////////////////////////////////////////////////////////////// -// Use this utility program to process correctly quotation marks in the command line -// Arguments: -// target - string to copy to -// source - string to copy from -// cpyLength - copy length -// availSpace - size of the target buffer -// Return :number of bytes used in target, or -1 in case of error -///////////////////////////////////////////////////////////////////////////////////// -int copyTo(wchar_t *target, const wchar_t *source, int cpyLength, int availSpace) { - bool bSlash = false; - int i = 0, j = 0; - - enum { QUOTATION_DO, QUOTATION_DONE, QUOTATION_NONE } nQuotationMode = QUOTATION_DO; - - if (availSpace <= cpyLength) { // = to reserve space for final '\0' - return -1; - } - - if ((_T('\"') == *source) && (_T('\"') == *(source + cpyLength - 1))) { - nQuotationMode = QUOTATION_DONE; - } else if (wcschr(source, _T(' '))) { - // Needs to be quoted - nQuotationMode = QUOTATION_DO; - *target = _T('\"'); - ++j; - } else { - // No reason to quote term because it doesn't have embedded spaces - nQuotationMode = QUOTATION_NONE; - } - - for (; i < cpyLength; ++i, ++j) { - if (source[i] == _T('\\')) { - bSlash = true; - } else { - // Don't escape embracing quotation marks - if ((source[i] == _T('\"')) && - !((nQuotationMode == QUOTATION_DONE) && ((i == 0) || (i == (cpyLength - 1))))) { - if (!bSlash) { // If still not escaped - if (j == availSpace) { - return -1; - } - target[j] = _T('\\'); - ++j; - } - } - bSlash = false; - } - - if (j == availSpace) { - return -1; - } - target[j] = source[i]; - } - - if (nQuotationMode == QUOTATION_DO) { - if (j == availSpace) { - return -1; - } - target[j] = _T('\"'); - ++j; - } - - return j; -} diff --git a/core/org.eclipse.cdt.core.native/native_src/win/starter.c b/core/org.eclipse.cdt.core.native/native_src/win/starter.c index 85a9748813d..1622f3a0cda 100644 --- a/core/org.eclipse.cdt.core.native/native_src/win/starter.c +++ b/core/org.eclipse.cdt.core.native/native_src/win/starter.c @@ -120,20 +120,130 @@ bool runCygwinCommand(wchar_t *command) { return false; } -void ensureSize(wchar_t **ptr, int *psize, int requiredLength) { - int size = *psize; - if (requiredLength > size) { - size = 2 * size; - if (size < requiredLength) { - size = requiredLength; +static bool openNamedPipeAsStdHandle(HANDLE *handle, DWORD stdHandle, int parentPid, int counter, + SECURITY_ATTRIBUTES *sa) { + wchar_t pipeName[PIPE_NAME_LENGTH]; + DWORD dwDesiredAccess; + DWORD dwShareMode; + + switch (stdHandle) { + case STD_INPUT_HANDLE: + BUILD_PIPE_NAME(pipeName, L"stdin", parentPid, counter); + dwDesiredAccess = GENERIC_READ; + dwShareMode = FILE_SHARE_READ; + break; + case STD_OUTPUT_HANDLE: + BUILD_PIPE_NAME(pipeName, L"stdout", parentPid, counter); + dwDesiredAccess = GENERIC_WRITE; + dwShareMode = FILE_SHARE_WRITE; + break; + case STD_ERROR_HANDLE: + BUILD_PIPE_NAME(pipeName, L"stderr", parentPid, counter); + dwDesiredAccess = GENERIC_WRITE; + dwShareMode = FILE_SHARE_WRITE; + break; + default: + if (isTraceEnabled(CDT_TRACE_MONITOR)) { + cdtTrace(L"Invalid STD handle given %i", stdHandle); } - *ptr = (wchar_t *)realloc(*ptr, size * sizeof(wchar_t)); - if (*ptr) { - *psize = size; + return false; + } + + *handle = CreateFileW(pipeName, dwDesiredAccess, dwShareMode, NULL, OPEN_EXISTING, 0, sa); + if (INVALID_HANDLE_VALUE == *handle) { + if (isTraceEnabled(CDT_TRACE_MONITOR)) { + cdtTrace(L"Failed to open pipe: %s -> %p\n", pipeName, handle); + } + return false; + } + + SetHandleInformation(*handle, HANDLE_FLAG_INHERIT, TRUE); + + if (!SetStdHandle(stdHandle, *handle)) { + if (isTraceEnabled(CDT_TRACE_MONITOR)) { + cdtTrace(L"Failed to reassign standard stream to pipe %s: %i\n", pipeName, GetLastError()); + } + return false; + } + + if (isTraceEnabled(CDT_TRACE_MONITOR)) { + cdtTrace(L"Successfully assigned pipe %s -> %p\n", pipeName, *handle); + } + + return true; +} + +bool createCommandLine(int argc, wchar_t **argv, wchar_t **cmdLine) { + int size = MAX_CMD_LINE_LENGTH; + wchar_t *buffer = (wchar_t *)malloc(size * sizeof(wchar_t)); + + if (!buffer) { + // malloc failed + cdtTrace(L"Not enough memory to build cmd line!\n"); + return false; + } + + int nPos = 0; + for (int i = 0; i < argc; ++i) { + wchar_t *str = *(argv + i); + int len = wcslen(str); + if (str) { + int required = nPos + len + 2; // 2 => space + \0 + if (required > 32 * 1024) { + free(buffer); + if (isTraceEnabled(CDT_TRACE_MONITOR)) { + cdtTrace(L"Command line too long!\n"); + } + return false; + } + + while (1) { + // Ensure enough space in buffer + if (required > size) { + size *= 2; + if (size < required) { + size = required; + } + + wchar_t *tmp = (wchar_t *)realloc(buffer, size * sizeof(wchar_t)); + if (tmp) { + // realloc successful + buffer = tmp; + } else { + // Failed to realloc memory + free(buffer); + if (isTraceEnabled(CDT_TRACE_MONITOR)) { + cdtTrace(L"Not enough memory to build cmd line!\n"); + } + return false; + } + } + + int nCpyLen = copyTo(buffer + nPos, (const wchar_t *)str, len, size - nPos); + if (nCpyLen < 0) { // Buffer too small + // Do a real count of number of chars required + required = nPos + copyTo(NULL, (const wchar_t *)str, len, INT_MAX) + 2; // 2 => space + \0 + continue; + } + + // Buffer was big enough. + nPos += nCpyLen; + break; + } + + buffer[nPos++] = _T(' '); + buffer[nPos] = _T('\0'); } else { - *psize = 0; + free(buffer); + if (isTraceEnabled(CDT_TRACE_MONITOR)) { + cdtTrace(L"Invalid argument!\n"); + } + return false; } } + + *cmdLine = buffer; + return true; } int main() { @@ -143,45 +253,10 @@ int main() { // Make sure that we've been passed the right number of arguments if (argc < 8) { - wprintf(L"Usage: %s (four inheritable event handles) (CommandLineToSpawn)\n", argv[0]); + wprintf(L"Usage: %s (parent pid) (counter) (four inheritable event handles) (CommandLineToSpawn)\n", argv[0]); return 0; } - // Construct the full command line - int nCmdLineLength = MAX_CMD_LINE_LENGTH; - wchar_t *szCmdLine = (wchar_t *)malloc(nCmdLineLength * sizeof(wchar_t)); - szCmdLine[0] = 0; - int nPos = 0; - - for (int i = 8; i < argc; ++i) { - int nCpyLen; - int len = wcslen(argv[i]); - int requiredSize = nPos + len + 2; - if (requiredSize > 32 * 1024) { - if (isTraceEnabled(CDT_TRACE_MONITOR)) { - cdtTrace(L"Command line too long!\n"); - } - return 0; - } - ensureSize(&szCmdLine, &nCmdLineLength, requiredSize); - if (!szCmdLine) { - if (isTraceEnabled(CDT_TRACE_MONITOR)) { - cdtTrace(L"Not enough memory to build cmd line!\n"); - } - return 0; - } - if (0 > (nCpyLen = copyTo(szCmdLine + nPos, argv[i], len, nCmdLineLength - nPos))) { - if (isTraceEnabled(CDT_TRACE_MONITOR)) { - cdtTrace(L"Not enough space to build command line\n"); - } - return 0; - } - nPos += nCpyLen; - szCmdLine[nPos] = _T(' '); - ++nPos; - } - szCmdLine[nPos] = _T('\0'); - STARTUPINFOW si = {sizeof(si)}; PROCESS_INFORMATION pi = {0}; DWORD dwExitCode = 0; @@ -199,56 +274,22 @@ int main() { int parentPid = wcstol(argv[1], NULL, 10); int nCounter = wcstol(argv[2], NULL, 10); - wchar_t inPipeName[PIPE_NAME_LENGTH]; - wchar_t outPipeName[PIPE_NAME_LENGTH]; - wchar_t errPipeName[PIPE_NAME_LENGTH]; - swprintf(inPipeName, sizeof(inPipeName) / sizeof(inPipeName[0]), L"\\\\.\\pipe\\stdin%08i%010i", parentPid, - nCounter); - swprintf(outPipeName, sizeof(outPipeName) / sizeof(outPipeName[0]), L"\\\\.\\pipe\\stdout%08i%010i", parentPid, - nCounter); - swprintf(errPipeName, sizeof(errPipeName) / sizeof(errPipeName[0]), L"\\\\.\\pipe\\stderr%08i%010i", parentPid, - nCounter); - if (isTraceEnabled(CDT_TRACE_MONITOR)) { - cdtTrace(L"Pipes: %s, %s, %s\n", inPipeName, outPipeName, errPipeName); - } - - HANDLE stdHandles[3]; + HANDLE stdHandles[] = { + INVALID_HANDLE_VALUE, // STDIN + INVALID_HANDLE_VALUE, // STDOUT + INVALID_HANDLE_VALUE // STDERR + }; SECURITY_ATTRIBUTES sa; sa.nLength = sizeof(SECURITY_ATTRIBUTES); sa.bInheritHandle = TRUE; sa.lpSecurityDescriptor = NULL; - if ((INVALID_HANDLE_VALUE == - (stdHandles[0] = CreateFileW(inPipeName, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, &sa))) || - (INVALID_HANDLE_VALUE == - (stdHandles[1] = CreateFileW(outPipeName, GENERIC_WRITE, FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, &sa))) || - (INVALID_HANDLE_VALUE == - (stdHandles[2] = CreateFileW(errPipeName, GENERIC_WRITE, FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, &sa)))) { - - if (isTraceEnabled(CDT_TRACE_MONITOR)) { - cdtTrace(L"Failed to open pipe %i, %i, %i: %i\n", stdHandles[0], stdHandles[1], stdHandles[2], - GetLastError()); - } - CloseHandle(stdHandles[0]); - CloseHandle(stdHandles[1]); - CloseHandle(stdHandles[2]); - return -1; - } - SetHandleInformation(stdHandles[0], HANDLE_FLAG_INHERIT, TRUE); - SetHandleInformation(stdHandles[1], HANDLE_FLAG_INHERIT, TRUE); - SetHandleInformation(stdHandles[2], HANDLE_FLAG_INHERIT, TRUE); - - if (!SetStdHandle(STD_INPUT_HANDLE, stdHandles[0]) || !SetStdHandle(STD_OUTPUT_HANDLE, stdHandles[1]) || - !SetStdHandle(STD_ERROR_HANDLE, stdHandles[2])) { - - if (isTraceEnabled(CDT_TRACE_MONITOR)) { - cdtTrace(L"Failed to reassign standard streams: %i\n", GetLastError()); - } - CloseHandle(stdHandles[0]); - CloseHandle(stdHandles[1]); - CloseHandle(stdHandles[2]); + if (!openNamedPipeAsStdHandle(&stdHandles[0], STD_INPUT_HANDLE, parentPid, nCounter, &sa) || + !openNamedPipeAsStdHandle(&stdHandles[1], STD_OUTPUT_HANDLE, parentPid, nCounter, &sa) || + !openNamedPipeAsStdHandle(&stdHandles[2], STD_ERROR_HANDLE, parentPid, nCounter, &sa)) { + CLOSE_HANDLES(stdHandles); return -1; } @@ -270,9 +311,7 @@ int main() { cdtTrace(L"Cannot Read Environment\n"); } } - if (isTraceEnabled(CDT_TRACE_MONITOR)) { - cdtTrace(L"Starting: %s\n", szCmdLine); - } + // Create job object HANDLE hJob = CreateJobObject(NULL, NULL); if (hJob) { @@ -292,22 +331,34 @@ int main() { cdtTrace(L"Cannot create job object\n"); DisplayErrorMessage(); } + + // Construct the full command line + wchar_t *cmdLine = NULL; + if (!createCommandLine(argc - 8, &argv[8], &cmdLine)) { + return 0; + } + + if (isTraceEnabled(CDT_TRACE_MONITOR)) { + cdtTrace(L"Starting: %s\n", cmdLine); + } + // Spawn the other processes as part of this Process Group // If this process is already part of a job, the flag CREATE_BREAKAWAY_FROM_JOB // makes the child process detach from the job, such that we can assign it // to our own job object. - BOOL f = CreateProcessW(NULL, szCmdLine, NULL, NULL, TRUE, CREATE_BREAKAWAY_FROM_JOB, NULL, NULL, &si, &pi); + BOOL f = CreateProcessW(NULL, cmdLine, NULL, NULL, TRUE, CREATE_BREAKAWAY_FROM_JOB, NULL, NULL, &si, &pi); // If breaking away from job is not permitted, retry without breakaway flag if (!f) { - f = CreateProcessW(NULL, szCmdLine, NULL, NULL, TRUE, 0, NULL, NULL, &si, &pi); + f = CreateProcessW(NULL, cmdLine, NULL, NULL, TRUE, 0, NULL, NULL, &si, &pi); } // We don't need them any more - CloseHandle(stdHandles[0]); - CloseHandle(stdHandles[1]); - CloseHandle(stdHandles[2]); + CLOSE_HANDLES(stdHandles); if (f) { + free(cmdLine); + cmdLine = NULL; + if (isTraceEnabled(CDT_TRACE_MONITOR)) { cdtTrace(L"Process %i started\n", pi.dwProcessId); } @@ -406,91 +457,18 @@ int main() { } } } else if (isTraceEnabled(CDT_TRACE_MONITOR)) { - cdtTrace(L"Cannot start: %s\n", szCmdLine); + cdtTrace(L"Cannot start: %s\n", cmdLine); + free(cmdLine); DisplayErrorMessage(); } - free(szCmdLine); - CloseHandle(waitEvent); - CloseHandle(h[0]); - CloseHandle(h[1]); - CloseHandle(h[2]); - CloseHandle(h[3]); - CloseHandle(h[4]); + CLOSE_HANDLES(h); return dwExitCode; } -///////////////////////////////////////////////////////////////////////////////////// -// Use this utility program to process correctly quotation marks in the command line -// Arguments: -// target - string to copy to -// source - string to copy from -// cpyLength - copy length -// availSpace - size of the target buffer -// Return :number of bytes used in target, or -1 in case of error -///////////////////////////////////////////////////////////////////////////////////// -int copyTo(wchar_t *target, const wchar_t *source, int cpyLength, int availSpace) { - bool bSlash = false; - int i = 0, j = 0; - - enum { QUOTATION_DO, QUOTATION_DONE, QUOTATION_NONE } nQuotationMode = QUOTATION_DO; - - if (availSpace <= cpyLength) { // = to reserve space for '\0' - return -1; - } - - if ((_T('\"') == *source) && (_T('\"') == *(source + cpyLength - 1))) { - // Already done - nQuotationMode = QUOTATION_DONE; - } else if (wcschr(source, _T(' '))) { - // Needs to be quotated - nQuotationMode = QUOTATION_DO; - *target = _T('\"'); - ++j; - } else { - // No reason to quotate term because it doesn't have embedded spaces - nQuotationMode = QUOTATION_NONE; - } - - for (; i < cpyLength; ++i, ++j) { - if (source[i] == _T('\\')) { - bSlash = true; - } else { - // Don't escape embracing quotation marks - if ((source[i] == _T('\"')) && - !((nQuotationMode == QUOTATION_DONE) && ((i == 0) || (i == (cpyLength - 1))))) { - if (!bSlash) { - if (j == availSpace) { - return -1; - } - target[j] = _T('\\'); - ++j; - } - bSlash = false; - } else { - bSlash = false; - } - } - - if (j == availSpace) { - return -1; - } - target[j] = source[i]; - } - - if (nQuotationMode == QUOTATION_DO) { - if (j == availSpace) { - return -1; - } - target[j] = _T('\"'); - ++j; - } - return j; -} - void DisplayErrorMessage() { wchar_t *lpMsgBuf; FormatMessageW(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, diff --git a/core/org.eclipse.cdt.core.native/native_src/win/util.c b/core/org.eclipse.cdt.core.native/native_src/win/util.c index 3191751c972..46b6c90b051 100644 --- a/core/org.eclipse.cdt.core.native/native_src/win/util.c +++ b/core/org.eclipse.cdt.core.native/native_src/win/util.c @@ -15,6 +15,7 @@ #include "util.h" #include +#include bool isTraceEnabled(const TraceKind_t traceKind) { static bool initialized = false; @@ -73,3 +74,66 @@ void cdtTrace(const wchar_t *fmt, ...) { // Clean up free(buffer); } + +int copyTo(wchar_t *target, const wchar_t *source, int cpyLength, int availSpace) { + bool bSlash = false; + int i = 0, j = 0; + + enum { QUOTATION_DO, QUOTATION_DONE, QUOTATION_NONE } nQuotationMode = QUOTATION_DO; + + if (availSpace <= cpyLength) { // = to reserve space for final '\0' + return -1; + } + + if ((_T('\"') == *source) && (_T('\"') == *(source + cpyLength - 1))) { + nQuotationMode = QUOTATION_DONE; + } else if (wcschr(source, _T(' '))) { + // Needs to be quoted + nQuotationMode = QUOTATION_DO; + if (target) { + *target = _T('\"'); + } + ++j; + } else { + // No reason to quote term because it doesn't have embedded spaces + nQuotationMode = QUOTATION_NONE; + } + + for (; i < cpyLength; ++i, ++j) { + if (source[i] == _T('\\')) { + bSlash = true; + } else { + // Don't escape embracing quotation marks + if ((source[i] == _T('\"')) && + !((nQuotationMode == QUOTATION_DONE) && ((i == 0) || (i == (cpyLength - 1))))) { + if (!bSlash) { // If still not escaped + if (j == availSpace) { + return -1; + } + target[j] = _T('\\'); + ++j; + } + } + bSlash = false; + } + + if (j == availSpace) { + return -1; + } + if (target) { + target[j] = source[i]; + } + } + + if (nQuotationMode == QUOTATION_DO) { + if (j == availSpace) { + return -1; + } + if (target) { + target[j] = _T('\"'); + } + ++j; + } + + return j; +} diff --git a/core/org.eclipse.cdt.core.native/native_src/win/util.h b/core/org.eclipse.cdt.core.native/native_src/win/util.h index d5991da771b..56a43460bdb 100644 --- a/core/org.eclipse.cdt.core.native/native_src/win/util.h +++ b/core/org.eclipse.cdt.core.native/native_src/win/util.h @@ -23,4 +23,21 @@ typedef enum { CDT_TRACE_MONITOR, CDT_TRACE_MONITOR_DETAILS, CDT_TRACE_READ_REPO bool isTraceEnabled(const TraceKind_t traceKind); void cdtTrace(const wchar_t *fmt, ...); +#define BUILD_PIPE_NAME(pipe, name, pid, counter) \ + do { \ + swprintf(pipe, sizeof(pipe) / sizeof(pipe[0]), L"\\\\.\\pipe\\%s%08i%010i", name, pid, counter); \ + } while (0) + +#define CLOSE_HANDLES(handles) \ + do { \ + for (int i = 0; i < sizeof(handles) / sizeof(handles[0]); i++) { \ + if (INVALID_HANDLE_VALUE != handles[i]) { \ + CloseHandle(handles[i]); \ + handles[i] = INVALID_HANDLE_VALUE; \ + } \ + } \ + } while (0) + +int copyTo(wchar_t *target, const wchar_t *source, int cpyLength, int availSpace); + #endif /* UTIL_H */ diff --git a/core/org.eclipse.cdt.core.win32.x86_64/os/win32/x86_64/pty.dll b/core/org.eclipse.cdt.core.win32.x86_64/os/win32/x86_64/pty.dll index 5751bb16ad0ad37e750e7b3d4d6ce19fe4b029a9..21a533ee5c18deaa6624d37478f027184228f38a 100755 GIT binary patch delta 109875 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 delta 109000 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 Yz#&Nz+?bQYK8wtNfwj4<%n=>_4;{dL;s5{u delta 28451 zcmc(H2~-qU)_+xZwE~Kuf+D!I3W^KZ?x-<>+NM!JT;m!*#4U;h(HNs?6me|ZHpEg( zO*CjW$Do5tf*MgYDlS>bHgTJT?CmlcCUG)OVut_kzV~`5P3D|$zVDoWd8+Swzjxo= z-hE3|w;ZVmyKy3{WNl=6+p;Ut21P1rAW3ynCvzi%p{+DllB6}y?d}nnZjvN4Og;VF z)gIkyBj!(61z^%J5wKNbSTW zB_L=|Ix*oMt8SM&_RK?x#7@HPcO^>cRq^>VvkI~#$xPgZxSQdgqJA$&$`7eM4d(Er zy!|%yFUPIm&Ql*Yw3DlzYu`dGFfT8Nj_WkNJ4P!dq07tU3akRU35LsAdbDS-BB*hu`1;bM%_xVBUxrUwO z6!otSCl1=iAWTEP3sKU(@&fFKoEv2Z>1hi{+@+tWI zq0RBWXpFG4f;Xm-63j&pjf%D+9T+prjNsVSNLus&eTx1B~D!))LWpBdC=S4)vBO& z7F1JQrc8m>*Vr7^I$P0-I%#oR;G+q5g@<@L?dYzCG&&%^tDb5Uj?a-zBh|k*YGZ#_ zlF-v>y`1c*0{c&MNwdp>jB&5*MrG?|N&%;7GvhppU`g)HJtb*%Rmke)7>J`Z815p0 z%tOuQEDl9~o8z?26?_K*-5q)%oTJg?EKWyDx8m0LJVv>!x*GRx#v~($iYH?%psMU0 z^~1(}Bi|v@5Yoog#Svho>sAPwr@y1N5AJGkS=7|vHVsIA=bma_u(jJI;mdjM%jh{I zjr(%73ze_fFdH3mdZ@iZhIF3I+nYo7UG8utwFdWK>HtybmRwL%o3-iG@c~{J@m>I2 zwBn9b&cdHgIR&f`LW-=EklI|v*m`FjV`Eo(Zj|7naN?Dw-TA_u&4y8GKFd!!0`Pn~1-=04E(GSs=l(AR74_vh4-W+UYD z>Zi@x$DC)zxvb?#q&Z}n?R*SbY>$GPa_iR z3f`XuY+x+rZ5uvfPw;jzVxLoURIIwZ#fXHx9(Qh>CQFizCfBca8a|^Q>a)8|13FQ5Upe@YiGR1o(-Z`ZXY&lAPTV2z#%I^5aR&?89 zb3meFLd0-~)r^=#I3;yHkvrotTb*=nO*-%*^& zpamRqynTYSV6A5LWXGALN(R_XDV#&DvK3XyxI=8G+=}f~t>WG=0OGowvAKpvXR^i* z+%~W|iYGDA&Hc5}HsUl%Li)KR*hRqKW-^N$)i?jlb{OYi+c}ag6pH9VF~CzSs*ErJS{#id%qdKDECC-7ak9zbE{l?+Bh=?c zH6^UGxDFj@N;(rQU_I$$rSlL!hZI#ZMNFjqeJ=AEAESG+S7yO|G7AG}5pr&({wc2D za&&@O`+a?x60+S^RLNXmO15(ykv=~6KO(u^cIiealvEef(}Ij~bFva<5e4RydlJRW zQA~3a&JmeK3kas(o5yMD%{t`{SY7oLMQ1wK^2StZ=Fuq;TBIAVhX5_Aq$PyMasubJ z&+#*AhL?Q>vAc>3jgpjfgfh&tUAd3oh-z~NKSeXmX*%{68Q~1SxE+?e=8)sA;!s%W z7$0p;a$JB}ouS~^OtKm7wEelh-WmRakK67lPDD(7>|OlX>;6UTxjuH6HP6S|&!6=y zv6_Z~)lsa#4yUO<%2-kyrg#)!ay5*A$tBEWVWv%8-Kx8VJwNch`1NDt5F$>lBjSt{ z-K`HtiZPI5#8UUOe5S zj~&=faW-c$lg6O^9*A{e(DMvJn7^Jv=7kTPOlI@ZZ-as3b0fhXjFSx3^9 zXPYZE&*s`p?ub|n(YE3Kxh0q##dpc|qDmq>9p`fMizj(SyEDPc&40Qvjpv(>p^eQ8>;vRH+Xsd_ z`R22k2Ay)l>NtgP#F0G5MasE;|E#aKJ55U;=x#%g-{~IW>wfnqO00no^rqGMcY6Pg z27xO-#(LkgPru*x*x&E|zOVao*8Ri-y(50V_Zz<652H5^lU+)7oZ@G+W0VFg7cd#- zR`6WJxrL93BR#-VbS4JS12&zs_A<7?_~fINPdZ%TS0{pqWP2mrGg>u4gcehDy-HdB zd$rzq^8u~UQcMx`_RyL6_JbWF(1Bw3+Z{IE*THUcq?^%$;`ZA;vhM4F4zVfD9n>Mk zxtTPjI9+663U>{DPeM&B*V#1?POEc@V_I~23i8mF;z)^3OmPg4POv#r?9mpdi)Cm^ zbSz&e(QHm}27j4>PA=0RN_-^ivv=5#vGpF+O%__uN}#B^coRP9y76zCv;Grq4ko12 zMeSmCCOOV~Cn#py5u^RS9%eq1kFXVptrj$s5Ay}dH{scF)VZ11c=Gs5-9y|(l|-bF z)!8u0xtT0=GC6WhQI)|_{4!csR=#W}rb4`*qK#_Dqv+@g-!-0$;!D-?=AP`)Xb*Hz zH>^&yDPnb^XplK~bmGmjG&6cIUEBv!@J|B+aJs@ANK5j@+AZD5A zv^nj}2c1T_20OV~Dqa(NFdp&?1%zvXhZPZ21jYU-zpwE)QyvBs-h% z?hz4e@egyd#h9)1LndNXz6HFflAY^AHVj9ss+m=A7JjUzyz-n!GVyW(8MPKzb@5hw z(skqO-_A&CM@C{Ju(RLU13jd%m+%TC*!;>p)+~L7rCYrfV;x$$B?BwO|L=E71TqY;T`N0W0ic~f-SFrX%6!|ZyzTBO*y-{AdQP*#%tOu`hBFo{WE zA;_+A@=U^GXJZN+nQ4=06QoXj-*(T!n;0xe0C?W{`q=4NRdk}fgB`!0cgzguW{R;s z?`S-ccSHuU3<_BvgcmA4H4kV(K zb+Luilb%8p#MX(7qE#9@;=}`N3*)D=2U-(6ttFx_)?YdSiq4U&nLnH(qokEC@t7VU zN^p=T#|vRBx$u^gEg)p~2yC>Ts%vv56xe9H!D>mqP&pBEj>QP&1eB30;jF>p+)Ro9 z$5s!IHcM(!k4XCyIM~wSU&y1%JDzec!;3ShVR;6vkMpW$Uz&z$Q6+VeLW)n5W8$dH zg42MBq~6Rrir0_(MZ72?JcP9jGNJL2Khf)Fd5*d*ILiL1;Iz)+uQW%bk#s))+T$2& zb6V$c0ewAc?sA##un-zjvI?`S{zg4pm4f3ZQ76+vCf8Y<2WHGMe%_%sHT>Y?OboR- ztm!tplf6?xd6La#O;0*XqC}25PP5m(5H?i=?PCZls-#b;AeRqW8MXnw9tcgY;OSUG z++(mOd6XfbbDOYze-4_k$jnHkMsm_Fxd-F8%VlLTSs|-ClP9j=G?EhpIX7A`*O=wb zM1>Dtb@2-{9=L9-#s_ry=36ZQ=VofB{m!}R6H01YHJq*h0{J6ts^e6$-EXJCT&n_~ zPEsCb7mh%LJ6%kmb2B}mqp$y|qlg(J7gZ9AA!NfsMDZwg8OeRKGbB2S&y!%0zfM-; z51KfsopPTf9*!aj_>^@8_eaPO`$#sBJU~O6vS2qxaK@!W_}@^+qaJN);0)L&l5P$u zW2tE^BM8Y#UOVpDT(9gwY3gGcNz;<1Cq0&wVaH23yof7d5ig4_gvodjN8hyB9Ghc7 zQXIwfO&easB@kF`%>)ZkT1JTG5v?x%ng}j>nE^&olti(*_#Vf=S?eub$4bd6)z;fY zA+44u)+r)bDsoxtI+)?$v-vQ-|l0h|gddmGJ4ckxNrjoVC|pB{c%rFNtpDdTy= z_1Wx>;&RsH*F&5QIPNtJBdK>loDGQ0yQv7Nj^a|{#t9AtXM-_N>)cG%I*Un;IIX@w z@n2a9B1whfw0b559bMt)lSvy>?tUr2a|}pA=3^Rw-R7Eb+vc*?igRj<8+0DSNQgt~ zCN5=_pOoodDZd~Eoz~mkD13BMs-m9UJpbdVaJUrOe8*F{F&$600xPPdPkuZNUZM~LBui`20$G8-_RHane$y=PO3kgUrRvDcQO0mDbJ=6fvVY*C zWDv`pko5-krOSODF%@JqC5{xbA;3UJ)lvR?)A@WyR2(efe>1hV|Hss#1l6UMqqqjD zbl!-};y4@JV9NP-Jbdb?_||rB4pk9cR7nImRFBVFQ&xJXCRxvn=f_K$rnHuQ(t#** z0(}YP$IFEyfxE)XM}dgEN@(C2qCbmh&{K<@rRip}i5(uFaXGnxbSR`Y#ETyanM!sj ztO6_!g-xKJci^M#>%&fKypQKh_*>&mBjR+CL<~4Z>OTxP4Q9yt@$69OG3^007y%xf zVu=Q@s4@{mVkbljHG6woC?+$SFe6yrdew4t_hjq@HL^%bMj)Zh{ef^ z`G+zNUSF$ydvqFp=oP-G-h&X>$9Ye=kDFPQN9B}zAFE>VfJ3`bE~+GcY4MZT(=NOs zzN&A%FpCL;A>zCG^TSDsSfXgh^L|%f!8rMzL+6=WUC<^@QP*DPo1_)4&`IqQt2^oS5%kyLOE!Af_}wF5{t-A~cyAxU?Z{(xaIq1*7j5&c zNc36MtF0_3H~xvpaIPP)!qLggPj)xrrdJ9=w%yEyhxrLV&byKD>BK(QPx$i?F1q4) zNZ~p7k_Z=>8o;r0{#dBzWjC0AWexa#c~e!$n^pMcP+iz7u%D1L)4x|Nm$cL$^Oy9e zm(=~eA`RVks~3CqmAh^1-OW(4TaD`-(=L#8f$X9c_oT)6rgOsAu-MJz-QJ}>(L3C* zV3)eK_p|onwB*35QtpCDDMTF`RJWs5IB2@Ri9*$3`kqaA({~_AN2tO3$aEMC)mEC< z(hX>Ztl(4Na$4`$@B$2{NqlD^*U)!&Hu=1hzUE&JmYp6J`vW}H?4a&66@Z1ks(%~> zbeZqza$gTun2e_dG&+VVV6*-Xn|$7eFX(SIDYD*?@ymqlkPYLIrnW}T;NxunH5Het ziG5q!|Mm>?zu-}kOSfzgdKDnP?)@!~5|shg(8c)XJNS*?Wx5qoWW5Ki_p+Zk$d)I3 z(Hlxf!R~z0~Yh5NH2V~mxx59a4_yre`b+EcX#?R)AHnD zj__v|^XZa5a|AKlg=n)sx0oP1{khG=Etq5dnMKw<;m;iFVXmeE`=Z-o3`S22Y@}eVc|#&9dLRv4OWNWr+#8y!||3V-0WWx^cREIG78jO8wuQ~@L$xo>74(KzWANV7Vnc*g> z`v~uAC_1gMZ;i*1#z#QV07LLyrJ6MGae1q{Z(zJUU;S!e|5kBGQ1(-; zSj?tD*4V`j+0uHewK{N6C-s$P&D2L*#u+Z}P|x)rpPj!9HrL5;Xet)1=p<5Q`s4*> zEf$;2RclS@U_qOWw;k2B(J$A~ww$-^(6vRP?VKrenYtn&()`m?IN@{(dDHYg722Ti zEfvD}?`sw&sTB#yy$bL?VkH&@nJ)yM7loc?^0WSK&gBJ4e zS7Ox3519=`N$S%N&FTIm`}JOfAKwmXmnc=6mY^=v&^>{HDoGkYfqt(+KOAwkX&0l0 z3~n#Ss67X_?7Ee7ERQzVhc`np$#JGWyeSHfv-ROg)aJtbf5*A{@a0?8{K35gq5(O= zpNm%a4IbWh2|^Lxf=OueB=lK(R$(>2Y;#?qH)AZR>sx5JX{FJ&gF}^V|I8!1b>ccl|Rxc;E z1AI5p+-Nh4er%EH-%HhwNu7IdBH6)r2GOe<_XPGlVLG=I0d|g$4nWIpw4^wPM?|<2 zsL>Vt#2|G=QoOuWElY~TXLV9c2lGRut8W(~UCvaS%;--S{l3HuZz7heO@=NqyfsKI z8k!eGas4U98Iz@|zYcBF6x9&dvn1P5XEU09S)z6u*2!>dpgL~YVZ)9AYT$62A!@*( zal=o`EeqH$++u9Sf5qzV3O>@GMy5r9+I>W9z+%!DZYWTvjd;2t80*7hpH)8_@w%LU zXx$@Y<@O93x1KC*b7v7q@wI~9`2Fi77eRwpu2+Axb&IBkqBF60Z86 zjN%<`=c_*?$280*8Kq9O?Z}QTS$PSXZ+&cYrn7Cx5xyp0ois8=&R3rq850E#`sL;- z1QtJ1M6Kwqy!bjMtT|sjF|zd-Ahv4L-6vS+5tpAtsXjbm9mGD*9l`dJK9NdA8D!3KuiBPDM@-%%7Q!G;0IgBGpiP`J`c8zLeKg5 z_n>6%D#;%P+48WoSB`IA^ zn$%ov{n)Igo?-J2ntJWA&WH9sc3L*|B2|axW^R?6R=@K&RSHjY8k%~j*^C~tJ&#wZ ziLSy-ecfF0pX*iY^zD+Qub=-~Uk|%apS|>wo?+{K^|klaOYW;nb^87R_tiu1tDE)p zj#B1*0z=R11)8f4&6xS3@lc79F5B@Cl}Zm%<%mD1vza6Xpj-lap}8crM!5#GU6>?w zN7)S86L%k!6G2DdehB4sP%93=!%-$WtQ9bniQdLN4P~PAgS$B>6LsU^+FpPP6?V18 zP@!B7+OrM*hY!j`|6rD+ttgj(j%+VUFQc3eT7tWraL{*fA4i#JR0l~qk22BWxIadj z=o#F#C=Nnt1x-Jb++Q6}1ED7;6R=p(}v*UILfu4^|;TYER6z=`yIkTucbf_l|e)Biu^Xpp`cIM z@o@*0LeL`I(m{k2bQ5j`aR;DW4%#$Lk{Y8-|1oOqXnfH^{Ge0EB0?xKZA zO@xEekFmC*TnKs=_X{Z3fKHtPgNX<9JKSX`*MY`QMYK@1fbPb99OZJ*Z>LH_q%*{X z%F1a77s@4|Q>G(vP|gI+#(kYSfWC>l7UjH5Nm_>c>x1e_<=n>kUswW+rhu`EQBKF9 zEviv*l(D(|iqzQBC^IN8u&QB=sn%G>+Cr7$P-B4HOO07DT-~;yvHHjPbeq-6`Hf8^ zB>&LC1!E0ri4taK|0fV(TwlXafj@RKEu)y+ zeFR_=bcUcy1YITQc0rE_S|#Ymf_^FJzXc7w!4;YX9VlqJpsW@8rD+0~C+Jc^*9f{r z&{9Fm1U)S12|>>b`mvzb1^rgg?*+XpsNp7kvxloO3Usv))GTOMLHh{$u%IIa9WUr( zg3b{%U(n@(t`T&Tpj?|I?YznLO9w?mm7q0(ek-T}X-!v{pj`#!DAN7EPGaW2B>gY5 z_`gqLyU5P}T^9fMNo@Z=$zqJdf0@K~>Hi{&DG&a;B*ysvA7nAh!~ZIY51oCgz+|t5 zfd7xT{ePo;lyz*HHKlj2_?dW^!xaWc{)e~yf7;cn;TJTDNP_5l6)v*&6jdOGPmo(bM0HInQNN{jO6wAsa~?SXTT_4zownqp|n(M z!2u7b|4YOX>gX9DJPTtI98Cj7{dI-@=YI)+vAn|!22=r<$botIQv@y4I>(s6$sCAe z9GUByD$@aI?T;wo2$Nc}t||V*Gn8tjuPR}9Y8fFPT)%aiT%~SvPnGKq{llFSASWLh z`uDc!@+B=RN$vo$I!R8HM`~x2P`P6-fjxtMao7AR@wY|AffgHXF0lt}Xf#azP##(F*)Ta{ zRCDpj+BPF&LDt+{N$y)aQcHhUZUMg8&&usV9M8&qnu*aknIcIY<*|WA%Si40XXUnN z{{C6nEaz2(l*sw%ee!txI&?|L!Mt&xG1LQ`$I09r9BA}Bf_C_pfF^;)(o5PKwemW7 zR7K(!vaPdRtvLb=?d8+j>j8#nL-{)Gg8)MZIgdz$);Q1*-cE?@n30j6leaLxAY=BT zSy^-EFV4@AWzn&<)Q4ypL>=I=v>~=72x*h${Cyn#b-F&27=#>8%uPZ;&Aha?b@B2Far|LnA{9 z$mm9fma)R5(O`_t5S1xZnJp?gsB|qDRk5Lwp^Gf1R2*q+P}<4owaRXWsM%s}w#q1& zzbGRoccvs;el+3>2cu`!w#vv@IzJ;zl6(EL4dJnvy)->IzD$yPb3DEWN7@>27GzO0Yyi=xj;O<)STh+KKLlmU5j| z-`x=4)am&93YmIR@#uprj|kS8#vrUp>$pw9cO5RcrA!C43kr}19A9E9jV#} zafTw03GoPGs`gyGp$EvRctfF@fefZGpwm(!V*InuB?B zK%KV3VsJr9x1NTfV_{rwks%YZ-!C%k1e&|r@b-A1y{;fR&TA8{7-Hnn+S6AIv1Z{w z*9GHpvKL8mjXVnqcZA?aLQmrP@WyEE?JI^!a=O;~sv%w;qm8->x6-w_s70mofjEHY zzh3ef!(x0+!sM2ETgPYzufn%6+Lu=iT|t7c!Tm8>+%+a++BL`+t1YA2SZZrIwQq!2 z!~TJX%zxq`wHGD!9w*lz^_=S0%$o8%O_J2F0DXQE#$fibOa4Zl3;X;3l&(cxH*{z@ zhD&OVN6%jJWY~%;;lt4t8QQc;Lj?H23I1U zkKvf1fL?tFd=1%gHBC$S+|U-o_2}n@HgTi5;1{TAs;E%R-sJrQjW$nU`Ys)ABXg1B+sv&mYo^mkNoaE57>NkSNPzE26(JL{5?~XhQ}VyCP}k4KQ{A*)+fy zBahdP4KQZP6SSy-#;7h6xJ`RtMprEFgQV^+2&j@n#vkReQkUupS_as|MB8n_o*;GU zI8oa`En?e>Lbyp#AE`_FM6D7n@E^PXPfXIpt z0#4vo#H|-?D%!fdI8OTjBII$}UpWaJ%xW=%jeQWpDT9rj5ztkGje{nR=lXY2xBjB? zM^tRMp*GN1>lwr@Z;9r^Xri|#Xr{62Q7iD1o-UaewB`>RFUu1vZa-}Nu^qPT+Q*C? z<%^nh!J(hXe zDQ|Ge+d2d7uxyf+muU6wB0Ni+mp^X(bnCkQ~N5@ zxIlhX8Ncf8-ME@mNWD4KI0Xl^@LG&Ao;`tb_yw4bw#anKYy!)OC} zVumrw?x*l!c%qL(yM3aW6zZEW>0dNsY{>5#&uNSzflGdYEaag98=;@2GG{IT*hZQc>%3J~`ZW4EYjdRBg{OOo6Fd z%`sySdFqz8j9IA6c#C1{-ohlAqMdxpXaT9?V8n6b0My1FHx2>WcpQ?aXeW+C@)Ygz zabt=+S&OMOW`j5?joo@o(cAh2*&6q`$g!W`K{o6rFED>%lBQ^1RT^v1_wWg5nXG+( z!q}_1U?z8^UgT!sWUco}?%Y?xR!~uq99HuRKlk@&LtX#A{$EMT z3K{aA9Hx9nG{dTNFyMr}>Jg_OxYWGOxNi4RJqm&`Ez>QKygX|pzO%t`q6y=csk%4xt zeTvdn`$LK{5Hsy`3S7bpl%kAI7V&QDr!cl57CM19yALlExK-dd#!JLsGg;f13hh(0 zFH>RQ6fGzXWUAJSlPR36N`nv6w1a8zdOCUC!|yQ&FNjaPnXcrA%XJlta+JSB8%i2$ zb(>&z-a17wl#0rxbxN!uk5?MphWbKY-r@w4Mc@N48nvQ48s!>M&Oy0~m$ee=P%bKm zok|Nsrl{ORMV7QN>y)U9*6Wq)vcVjz)$CU~RJ7ip^pXvU!4>JxDlf=}%wRm?01kal z87>Jwfu+ z`UK@rGNhgT28uU3`FD*p;bnNdKQanPoy8w{2FU)N{>VBYZF>15+kiaM+aGxqNR>dy zFiEQD2k1l}4^#HSyr;%5#Pchr0{LQ;;tO(?VpdD(O$mW7vJ7MYsvX#@%$Cn+O`la- zg&YPBFVIG%I4x-l9!utEACxQMTKYzeMwN)!CGEv6N=HLxe=YB@(ss)xMX{Im_h>>_ z=@P8DE)X8at3WbQY(VmfMY;_nONaanWQGn20eiL=$(~s-K0hlvXIp~DPmfobO_(w= z{a1L`lH3}gozRr%Mg^!tE?O+iOT!#ln^vwwYH3@rAejTT?pv{t)N;>aC}ICyFG;iI ztb&EPIZNjj#AlPSp34k_GPMP-DeW4>p_tC{AhHX-I|nOrVc-Ln4e-SK0%SDdhE+YU z1ZkHmlt}qyZTdE)qr6pHxlQ@SfObk_t#rE*Er)7nw?oZHsId&xc5Z~p%JWK#h-m=w zyn4v6Tp&_ot#+5vT1$IgX&9qxbrQcfhMtH)#=Q z*8WAL&^fKmi%Q3|8$jqU1^On}Js^c%)5w)zTHA1wAf6^>)XIZ+&6mc|vf)LT|BkG! z-=}ntKc)ai(U=AXd6*HwtYb*s%u?mLAyashxeIQr){1w*+`bT9`w+|Fh~X%Q4)!;0 z9FV$36xE>-^H47Iwt8ZSz5{o|h}$BDpon3V_RVf(w4o}97RMG^-Fii-NPme|sX}2x z`YW(ur?!~LU>?!(7nSIW+E-|qD)o!&TUs)u+7hTQ8O-7uwFc$V2TUm;MEl!jB|(QU0o;Xr#M_*ia=*iT|S#-N}t9!jnF4QO@F-3*+*0 z<}b|lCH@wuEFa9`)ch5c&G?3ouPQWTZ)t!0qtdZ!HQ6}CKY(8lE4E+XSk?gvZBcb4byqgUM1R46QsSj7X#i{`}^DIh2Jia}CPUaDNkD078Ggz-Qv?#E{V6I9zsWUs7cZ9zW1xJ@x>KkZX4V-I_7 zCq^l~ObOI}+z+FBYc2l-qyG#AH6vKS?LVO`L4wa91?JTv$$dyOAc>FoJJth;TgNjL zNR^If29Qjfrzp>9Q&|r_H*LJ18~Bs zy?p?go$Sr*AZ^KdrMZ@|4@*mrgUTT}k-Bv3^eCkAyn{Yz3C!_b9&-|zm=Rk1K`fce z4=H=)Ox9U0)J7dfsMetucxWH8zf2A#dmJKJ6+jAg$T=W2I^-IV%#r@R?gFXPA)yGR zWt2ZpMd&uG0$byU5PB(@454u{YV9v7Q?&XGN<-6i8Yu0F^;ie$HKm~(q1`%) zWE^-zDUnOP0~Mfse+2X1ffbg=AK!K46B}Pu&azg2&CBCI3i{c4Z)bhSi`f7uZ<3F!(j$_BY90`@);+vl03c+^p z1lrP=Ov_1caX%|+ncqNWToq(;j=fc0j@VP);;XEv)t$m~1n1j*+S_P;+gse}E4Du4 zMYsEk5of*V7FN`1&w6EUJm+l;t@ai-_==6sd(m~iV!#D2y5<5L(X{u8q;08D=4q=g zqWBj=qUi4^2jckx+wiBti+h*6U6;M%E#CDNm%K};R`o6!sTKYO!CLg5H&}J=dHdwP z5A+u4>8M?OAA?Bh56VNe58TlFUX4fdJZgB8Q z6(7FlMUVT61Fw70BdkalG~+po(qI#Bd*&97in~$%nhq@OOb1Z3(2~+FunNVs_ShQ`om5%ly0JrKorva(Ldv%|<$%N>{Pod(njmitzRZQNr%({`OB}6y$cc_<6PNV2xY|1(Z+5n-qIKF|1*Q&o) zV(FKPz9=VxD-&bxb7~S0`i|R&JOQLsH#W6~IYym=NDPOOHKw^R5*dbgy1H@v~ za{s1S?6o8TZur9c6OaI%Q^qFD5Fz2o>_z$6bMmE{RDb)!!BeWsl1@PMdiw#9bUcqV z15~bq#%n$5los|hf8iMwYtP@jO2^Z_39F8 zhpy57>Jz{estf5OKx|Oq%eTous&od?UuC5~`QtOF2*{*#kL0mASu;n>ou9K*r>i6s zj%Mm?+^MbnL21#O1=1|i`v63R>U_HfL~qiqQ0?LmN(cL|XraqDU7Fz)R;kW33y=h_ zX~b;>Qlrx_9*BNT$_7%0MG&HdU5kKZ>KrPLrfx97r~Y{$VWJCPhz@Db{&@d{co$q| zaQPO_Pl3?i!SO}(CXi5Fu>J|8MCV#l|}biMikDK}x@eWFJJ3eYi40-{ge zB|z5dM6U)?qD%SbNRHR&ar1L>^5B$3*XwogAoz9`L>`eNfbM#`p@(!9NTF_sJ_2$? zXX0Oh(B*TZVRLw}g|5|nmao; zYd%cW&5&=wL+1nE0`)79P%QjD$wA};E}x05!;l1Pb=|sxX^vO@qJsR~>;-vJfKJ(P z@Yr;tH5JHKZ!c1k2Sh)9_;Ytsx{ha47?QxE^ZqcH%(_871>~}KNb%o}*n&^t&WS7mx3N z)Or#8pQc4Q1#mSDd5 zv6-ZyepWvTDAemK0-Kwi_mp&57uaI(?D6_R!?98O*IlKr{Qw#gbUHr*lBYxJfJnM2 z(Xb`5UFS_Wkn_4;9f4fdA-xFE8IhCSoYw>IEL(f);4U zB6yw!-;NTO~c?QDhlS?C?8Sx@HAEyw|r7eQZX z54tVY8FU(mMQ2bA5W0Mc;|6k9HzV&oz!Mya^*K+M0+Eq8OX)&w0g|b+IvvO)o%-oO zXv^nk+zkFjnUv>MkGVc`aUNo(o9lV#W!E1;RsnMB@?;B;TCX7TaW@bOy3f}WK!mA_rO!`jR!VRyeY*b zVJ4czNH>at(Ow?v6$vE58zDkE5kh|>+Ls^$043^}Mgs};`a#`h1M$Ty@C3@FG6xQgQv!b@%O2J1yH6g_?4tghkOjAO6S>EKx`1`TcLgg zvK%~I@{(D3`Ezp%W=UT4v+{G0|3JR0om$JwB8j{>y>#*U{3BL z{N#7s++}J>eq8&Ur8(IaDK%+QhIOJfZG1*rQmQp0#hUiWcw2lzpPrVU6^|&U&T_xr weWe8parRr7AD_^xU+;dN+VGqL{DycD1N%!je#{)peq79ego>99ugCgZLQs_}P znJHPBy)nI__-HH(D>E!B%O2FVE~a^{%&cqj|E+V*%y7EjcaNRfYyI}xYp=ET+K+Q) z=<+)uJKhgzSQD1`XY-qEmBgm?VC)hbz

e6w6_Z&0M!VTg`W$ST}M+(o#% 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