diff options
Diffstat (limited to 'lib/server')
-rw-r--r-- | lib/server/LocalProcessStream.cpp | 11 | ||||
-rw-r--r-- | lib/server/LocalProcessStream.h | 3 |
2 files changed, 8 insertions, 6 deletions
diff --git a/lib/server/LocalProcessStream.cpp b/lib/server/LocalProcessStream.cpp index af24de1b..c331a135 100644 --- a/lib/server/LocalProcessStream.cpp +++ b/lib/server/LocalProcessStream.cpp @@ -43,13 +43,14 @@ // Created: 12/3/04 // // -------------------------------------------------------------------------- -std::auto_ptr<IOStream> LocalProcessStream(const char *CommandLine, pid_t &rPidOut) +std::auto_ptr<IOStream> LocalProcessStream(const std::string& rCommandLine, + pid_t &rPidOut) { #ifndef WIN32 // Split up command std::vector<std::string> command; - SplitString(std::string(CommandLine), ' ', command); + SplitString(rCommandLine, ' ', command); // Build arguments char *args[MAX_ARGUMENTS + 4]; @@ -137,8 +138,8 @@ std::auto_ptr<IOStream> LocalProcessStream(const char *CommandLine, pid_t &rPidO startupInfo.hStdInput = INVALID_HANDLE_VALUE; startupInfo.dwFlags |= STARTF_USESTDHANDLES; - CHAR* commandLineCopy = (CHAR*)malloc(strlen(CommandLine) + 1); - strcpy(commandLineCopy, CommandLine); + CHAR* commandLineCopy = (CHAR*)malloc(rCommandLine.size() + 1); + strcpy(commandLineCopy, rCommandLine.c_str()); BOOL result = CreateProcess(NULL, commandLineCopy, // command line @@ -155,7 +156,7 @@ std::auto_ptr<IOStream> LocalProcessStream(const char *CommandLine, pid_t &rPidO if(!result) { - BOX_ERROR("Failed to CreateProcess: '" << CommandLine << + BOX_ERROR("Failed to CreateProcess: '" << rCommandLine << "': " << GetErrorMessage(GetLastError())); CloseHandle(writeInChild); CloseHandle(readFromChild); diff --git a/lib/server/LocalProcessStream.h b/lib/server/LocalProcessStream.h index 490c0f45..51e51f8a 100644 --- a/lib/server/LocalProcessStream.h +++ b/lib/server/LocalProcessStream.h @@ -13,7 +13,8 @@ #include <memory> #include "IOStream.h" -std::auto_ptr<IOStream> LocalProcessStream(const char *CommandLine, pid_t &rPidOut); +std::auto_ptr<IOStream> LocalProcessStream(const std::string& rCommandLine, + pid_t &rPidOut); #endif // LOCALPROCESSSTREAM__H |