diff --git a/src_main/system/piprocess.cpp b/src_main/system/piprocess.cpp index fb800b92..9d2906ec 100755 --- a/src_main/system/piprocess.cpp +++ b/src_main/system/piprocess.cpp @@ -86,8 +86,8 @@ void PIProcess::startProc(bool detached) { str = args[i]; a[as] = '"'; memcpy(&a[as + 1], str.data(), str.lengthAscii()); - a[as + str.length() + 1] = '"'; - as += str.length() + 3; + a[as + str.lengthAscii() + 1] = '"'; + as += str.lengthAscii() + 3; } a[as - 1] = 0; //piCout << a; @@ -95,9 +95,9 @@ void PIProcess::startProc(bool detached) { char * a[args.size_s() + 1]; for (int i = 0; i < args.size_s(); ++i) { str = args[i]; - a[i] = new char[str.size() + 1]; - memcpy(a[i], str.data(), str.lengthAscii()); - a[i][str.size()] = 0; + a[i] = new char[str.lengthAscii() + 1]; + memcpy(&a[i], str.data(), str.lengthAscii()); + a[i][str.lengthAscii()] = 0; //cout << a[i] << endl; } a[args.size_s()] = 0; @@ -108,7 +108,7 @@ void PIProcess::startProc(bool detached) { str = env[i]; e[i] = new char[str.size() + 1]; memcpy(e[i], str.data(), str.lengthAscii()); - e[i][str.size()] = 0; + e[i][str.lengthAscii()] = 0; //cout << e[i] << endl; } e[env.size_s()] = 0;