From 4e42b9fdbdf46d7f9e240983183a7cd732769b4d Mon Sep 17 00:00:00 2001 From: XinyuHou Date: Wed, 28 Jan 2015 17:33:10 +0000 Subject: [PATCH] fixed memory leak and validate ssl #4313 --- src/lib/plugin/ns/SecureSocket.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/lib/plugin/ns/SecureSocket.cpp b/src/lib/plugin/ns/SecureSocket.cpp index 14635511..217f8d30 100644 --- a/src/lib/plugin/ns/SecureSocket.cpp +++ b/src/lib/plugin/ns/SecureSocket.cpp @@ -61,11 +61,14 @@ SecureSocket::~SecureSocket() { if (m_ssl->m_ssl != NULL) { SSL_free(m_ssl->m_ssl); + m_ssl->m_ssl = NULL; } if (m_ssl->m_context != NULL) { SSL_CTX_free(m_ssl->m_context); + m_ssl->m_context = NULL; } + delete m_ssl; delete[] m_error; } @@ -90,7 +93,7 @@ SecureSocket::secureRead(void* buffer, UInt32 n) { bool retry = false; int r = 0; - if (m_ssl != NULL) { + if (m_ssl->m_ssl != NULL) { r = SSL_read(m_ssl->m_ssl, buffer, n); retry = checkResult(r); if (retry) { @@ -106,7 +109,7 @@ SecureSocket::secureWrite(const void* buffer, UInt32 n) { bool retry = false; int r = 0; - if (m_ssl != NULL) { + if (m_ssl->m_ssl != NULL) { r = SSL_write(m_ssl->m_ssl, buffer, n); retry = checkResult(r); if (retry) {