From 80148955f82c205cc94f0112e0fbfe8f91bc4330 Mon Sep 17 00:00:00 2001 From: Tobias Weimer Date: Mon, 25 Jan 2016 21:20:35 +0000 Subject: 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 --- plugins/CryptoPP/src/cpp_keys.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'plugins/CryptoPP/src/cpp_keys.cpp') diff --git a/plugins/CryptoPP/src/cpp_keys.cpp b/plugins/CryptoPP/src/cpp_keys.cpp index ec1659f179..37a197d70f 100644 --- a/plugins/CryptoPP/src/cpp_keys.cpp +++ b/plugins/CryptoPP/src/cpp_keys.cpp @@ -56,10 +56,14 @@ LPSTR __cdecl cpp_init_keya(HANDLE context, int features) } memcpy((PVOID)&publ1[KEYSIZE], (PVOID)&send_features, 2); + mir_free(ptr->tmp); if (ptr->mode & MODE_BASE64 || features & FEATURES_NEWPG) - replaceStr(ptr->tmp, mir_base64_encode(publ1, KEYSIZE + 2)); - else - replaceStr(ptr->tmp, base16encode((LPSTR)&publ1, KEYSIZE + 2)); + ptr->tmp = mir_base64_encode(publ1, KEYSIZE + 2); + else { + char *base16 = base16encode((LPSTR)&publ1, KEYSIZE + 2); + ptr->tmp = mir_strdup(base16); + free(base16); + } return ptr->tmp; } -- cgit v1.2.3