From ff1555c1d973c2d0aea546b4d20577715e132577 Mon Sep 17 00:00:00 2001 From: Maxim Mamontov Date: Sun, 14 Sep 2014 01:01:44 +0300 Subject: [PATCH] Handle string for encryption properly. --- .../stargazer/plugins/configuration/sgconfig/rsconf.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/projects/stargazer/plugins/configuration/sgconfig/rsconf.cpp b/projects/stargazer/plugins/configuration/sgconfig/rsconf.cpp index afcb6881..f7e6169e 100644 --- a/projects/stargazer/plugins/configuration/sgconfig/rsconf.cpp +++ b/projects/stargazer/plugins/configuration/sgconfig/rsconf.cpp @@ -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; } -- 2.44.2