|
@@ -28,15 +28,19 @@ void start_remote_actor(
|
|
|
size_t lambda,
|
|
|
bool maliciousServers)
|
|
|
{
|
|
|
- const char* sshFile = "ssh";
|
|
|
+ const char* sshFile = "/usr/bin/ssh";
|
|
|
const char* serverFile = "bin/server";
|
|
|
const char* clientFile = "bin/client";
|
|
|
const char* calledFile = (target != "tick0" && !target.empty() ? sshFile : (server ? serverFile : clientFile));
|
|
|
+ const char* remoteScript = "\"~/prsona/prsona/scripts/startup.sh";
|
|
|
+ const char* serverStr = "server";
|
|
|
+ const char* clientStr = "client";
|
|
|
+ const char* calledScript = (server ? serverStr : clientStr);
|
|
|
|
|
|
- char *argv[6];
|
|
|
+ char *argv[10];
|
|
|
|
|
|
- char fileBuffer[11];
|
|
|
- strncpy(fileBuffer, calledFile, 11);
|
|
|
+ char fileBuffer[13];
|
|
|
+ strncpy(fileBuffer, calledFile, 13);
|
|
|
argv[0] = fileBuffer;
|
|
|
|
|
|
char flagBuffer[3];
|
|
@@ -45,8 +49,11 @@ void start_remote_actor(
|
|
|
char targetBuffer[64];
|
|
|
strncpy(targetBuffer, target.c_str(), 64);
|
|
|
|
|
|
- std::string fullArgString;
|
|
|
- char fullArgBuffer[256];
|
|
|
+ char scriptBuffer[36];
|
|
|
+ strncpy(scriptBuffer, remoteScript, 36);
|
|
|
+
|
|
|
+ char whichScriptBuffer[7];
|
|
|
+ strncpy(whichScriptBuffer, calledScript, 7);
|
|
|
|
|
|
char idBuffer[64];
|
|
|
strncpy(idBuffer, id.c_str(), 64);
|
|
@@ -59,7 +66,7 @@ void start_remote_actor(
|
|
|
char lambdaBuffer[3];
|
|
|
strncpy(lambdaBuffer, lambdaStream.str().c_str(), 3);
|
|
|
|
|
|
- char maliciousBuffer[2];
|
|
|
+ char maliciousBuffer[3];
|
|
|
if (maliciousServers)
|
|
|
strncpy(maliciousBuffer, "T", 2);
|
|
|
else
|
|
@@ -67,23 +74,19 @@ void start_remote_actor(
|
|
|
|
|
|
if (target != "tick0" && !target.empty())
|
|
|
{
|
|
|
- fullArgString = "~/prsona/prsona/scripts/startup.sh ";
|
|
|
- fullArgString += (server ? "server" : "client");
|
|
|
- fullArgString += " ";
|
|
|
- fullArgString += id;
|
|
|
- fullArgString += " ";
|
|
|
- fullArgString += output;
|
|
|
- fullArgString += " ";
|
|
|
- fullArgString += lambdaStream.str();
|
|
|
- fullArgString += " ";
|
|
|
- fullArgString += (maliciousServers ? "T" : "F");
|
|
|
-
|
|
|
- strncpy(fullArgBuffer, fullArgString.c_str(), 256);
|
|
|
-
|
|
|
argv[1] = flagBuffer;
|
|
|
argv[2] = targetBuffer;
|
|
|
- argv[3] = fullArgBuffer;
|
|
|
- argv[4] = NULL;
|
|
|
+ argv[3] = scriptBuffer;
|
|
|
+ argv[4] = whichScriptBuffer;
|
|
|
+ argv[5] = idBuffer;
|
|
|
+ argv[6] = outputBuffer;
|
|
|
+ argv[7] = lambdaBuffer;
|
|
|
+
|
|
|
+ maliciousBuffer[1] = '\"';
|
|
|
+ maliciousBuffer[2] = 0;
|
|
|
+ argv[8] = maliciousBuffer;
|
|
|
+
|
|
|
+ argv[9] = NULL;
|
|
|
}
|
|
|
else
|
|
|
{
|