]> git.stg.codes - stg.git/blobdiff - projects/stargazer/plugins/configuration/sgconfig/rsconf.cpp
Handle string for encryption properly.
[stg.git] / projects / stargazer / plugins / configuration / sgconfig / rsconf.cpp
index afcb688172bf59864082e3757ae15ed0441544ad..f7e6169e44cd694284b27901718ad311706e8958 100644 (file)
@@ -480,7 +480,7 @@ while (1)
         if (ParseCommand())
             return SendError(sock, "Bad command");
         else
-            return SendDataAnswer(sock, currParser->GetAnswer());
+            return SendDataAnswer(sock, GetDataAnswer());
         }
     }
 //return 0;
@@ -495,13 +495,13 @@ BLOWFISH_CTX ctx;
 InitContext(adminPassword.c_str(), ADM_PASSWD_LEN, &ctx);
 
 std::string::size_type pos = 0;
-std::string::size_type length = answer.length();
+std::string::size_type length = answer.length() + 1;
 while (pos < length)
     {
     char buffer[1024];
     std::string::size_type chunkLength = std::min(length - pos, sizeof(buffer));
     EncryptString(buffer, answer.c_str() + pos, chunkLength, &ctx);
-    if (send(sock, buffer, chunkLength, 0) < 0)
+    if (send(sock, buffer, (chunkLength & ~7) < chunkLength ? chunkLength + 8 : chunkLength, 0) < 0) // Need to send data adjusted to the 8-byte boundary.
         return -1;
     pos += chunkLength;
     }