summaryrefslogtreecommitdiff
path: root/plugins/CryptoPP/src/cpp_rsam.cpp
diff options
context:
space:
mode:
authorTobias Weimer <wishmaster51@googlemail.com>2016-01-25 21:20:35 +0000
committerTobias Weimer <wishmaster51@googlemail.com>2016-01-25 21:20:35 +0000
commit80148955f82c205cc94f0112e0fbfe8f91bc4330 (patch)
tree252a0ae41cdb2ad3d798e311fb728b04e5bdbdbd /plugins/CryptoPP/src/cpp_rsam.cpp
parenta289103f2834d2219799f8d84e29a6d69c00574a (diff)
Crypto++: Fix for many memory leaks introduced in [6593].
Note that replaceStr already does mir_strdup the argument! git-svn-id: http://svn.miranda-ng.org/main/trunk@16168 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'plugins/CryptoPP/src/cpp_rsam.cpp')
-rw-r--r--plugins/CryptoPP/src/cpp_rsam.cpp12
1 files changed, 6 insertions, 6 deletions
diff --git a/plugins/CryptoPP/src/cpp_rsam.cpp b/plugins/CryptoPP/src/cpp_rsam.cpp
index f20d1c399c..ebf0564bc6 100644
--- a/plugins/CryptoPP/src/cpp_rsam.cpp
+++ b/plugins/CryptoPP/src/cpp_rsam.cpp
@@ -408,27 +408,27 @@ LPSTR __cdecl rsa_recv(HANDLE context, LPCSTR msg)
case 0x70: // получили AES сообщение, декодируем
{
+ mir_free(ptr->tmp);
string msg = decode_msg(p, data);
if (msg.length())
- replaceStr(ptr->tmp, mir_strdup(msg.c_str()));
+ return ptr->tmp = mir_strdup(msg.c_str());
else {
imp->rsa_notify(context, -5); // ошибка декодирования AES сообщения
- replaceStr(ptr->tmp, NULL);
+ return ptr->tmp = NULL;
}
}
- return ptr->tmp;
case 0xE0: // получили RSA сообщение, декодируем
{
+ mir_free(ptr->tmp);
string msg = decode_rsa(p, r, data);
if (msg.length())
- replaceStr(ptr->tmp, mir_strdup(msg.c_str()));
+ return ptr->tmp = mir_strdup(msg.c_str());
else {
imp->rsa_notify(context, -6); // ошибка декодирования RSA сообщения
- replaceStr(ptr->tmp, NULL);
+ return ptr->tmp = NULL;
}
}
- return ptr->tmp;
case 0xF0: // разрыв соединения вручную
{