aboutsummaryrefslogtreecommitdiffstats
path: root/src/modules
diff options
context:
space:
mode:
authorGravatar IceN9ne2017-03-09 19:19:07 -0500
committerGravatar IceN9ne2017-03-09 19:19:07 -0500
commit2d5fd9def3a59489561ca53dd933ca7e86342ba7 (patch)
treedd5d754f1852aa4ab4c8f365afa820e8333c9c76 /src/modules
parentRegisteredUsersDialog: Fix memory leak in exportClicked (diff)
downloadKVIrc-2d5fd9def3a59489561ca53dd933ca7e86342ba7.tar.gz
KVIrc-2d5fd9def3a59489561ca53dd933ca7e86342ba7.tar.bz2
KVIrc-2d5fd9def3a59489561ca53dd933ca7e86342ba7.zip
rijndael module: Fix potential memory leak and invalid length check
Diffstat (limited to 'src/modules')
-rw-r--r--src/modules/rijndael/libkvirijndael.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/modules/rijndael/libkvirijndael.cpp b/src/modules/rijndael/libkvirijndael.cpp
index 73f02b6ce..f8443b7b9 100644
--- a/src/modules/rijndael/libkvirijndael.cpp
+++ b/src/modules/rijndael/libkvirijndael.cpp
@@ -249,6 +249,8 @@ KviCryptEngine::EncryptResult KviRijndaelEngine::encrypt(const char * plainText,
int retVal = m_pEncryptCipher->padEncrypt((const unsigned char *)plainText, len, (unsigned char *)buf, iv);
if(retVal < 0)
{
+ if(m_bEncryptMode == CBC)
+ KviMemory::free(iv);
KviMemory::free(buf);
setLastErrorFromRijndaelErrorCode(retVal);
return KviCryptEngine::EncryptError;
@@ -388,7 +390,7 @@ bool KviRijndaelBase64Engine::asciiToBinary(const char * inBuffer, int * len, ch
}
else
{
- if(len > nullptr)
+ if(*len > 0)
{
*outBuffer = (char *)KviMemory::allocate(*len);
KviMemory::move(*outBuffer, tmpBuf, *len);