]> git.stg.codes - stg.git/blobdiff - stglibs/srvconf.lib/netunit.cpp
Fixed pointer arithmentics in crypto.lib.
[stg.git] / stglibs / srvconf.lib / netunit.cpp
index 4342853049eda5c7c3750d99ff73a6d07aff29c5..596f766f1494a84ed6372d32f55505615c6a9ff7 100644 (file)
@@ -293,7 +293,7 @@ int ret;
 memset(loginZ, 0, ADM_LOGIN_LEN);
 BLOWFISH_CTX ctx;
 InitContext(password.c_str(), PASSWD_LEN, &ctx);
 memset(loginZ, 0, ADM_LOGIN_LEN);
 BLOWFISH_CTX ctx;
 InitContext(password.c_str(), PASSWD_LEN, &ctx);
-EncryptString(loginZ, login.c_str(), std::min(login.length(), ADM_LOGIN_LEN), &ctx);
+EncryptString(loginZ, login.c_str(), std::min(login.length() + 1, ADM_LOGIN_LEN), &ctx);
 if (send(outerSocket, loginZ, ADM_LOGIN_LEN, 0) <= 0)
     {
     errorMsg = SEND_LOGIN_ERROR;
 if (send(outerSocket, loginZ, ADM_LOGIN_LEN, 0) <= 0)
     {
     errorMsg = SEND_LOGIN_ERROR;
@@ -345,9 +345,9 @@ int r = strlen(text) % ENC_MSG_LEN;
 
 BLOWFISH_CTX ctx;
 InitContext(password.c_str(), PASSWD_LEN, &ctx);
 
 BLOWFISH_CTX ctx;
 InitContext(password.c_str(), PASSWD_LEN, &ctx);
-char buffer[text.length()];
-EncryptString(buffer, text.c_str(), text.length(), &ctx);
-if (send(outerSocket, buffer, text.length(), 0) <= 0)
+char buffer[text.length() + 9];
+EncryptString(buffer, text.c_str(), text.length() + 1, &ctx);
+if (send(outerSocket, buffer, sizeof(buffer), 0) <= 0)
     {
     errorMsg = SEND_DATA_ERROR;
     return st_send_fail;
     {
     errorMsg = SEND_DATA_ERROR;
     return st_send_fail;