diff options
author | Clifford Allan Jansen <cliffjansen@apache.org> | 2013-11-06 21:59:30 +0000 |
---|---|---|
committer | Clifford Allan Jansen <cliffjansen@apache.org> | 2013-11-06 21:59:30 +0000 |
commit | c7b1902c705c9add6608d39d6d46ad59c6021b23 (patch) | |
tree | 80d38e391d92ae9e75005ddf4289087de82fd8e8 | |
parent | ee2b1a57ed083e95fc08f9ddadcfb3395f385592 (diff) | |
download | qpid-python-c7b1902c705c9add6608d39d6d46ad59c6021b23.tar.gz |
QPID-3502: Windows SslConnector memory error from unititialized data
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1539474 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r-- | qpid/cpp/src/qpid/client/windows/SslConnector.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/qpid/cpp/src/qpid/client/windows/SslConnector.cpp b/qpid/cpp/src/qpid/client/windows/SslConnector.cpp index 1951401a89..a60ced9059 100644 --- a/qpid/cpp/src/qpid/client/windows/SslConnector.cpp +++ b/qpid/cpp/src/qpid/client/windows/SslConnector.cpp @@ -116,8 +116,9 @@ SslConnector::SslConnector(boost::shared_ptr<qpid::sys::Poller> p, framing::ProtocolVersion ver, const ConnectionSettings& settings, ConnectionImpl* cimpl) - : TCPConnector(p, ver, settings, cimpl), shim(0), poller(p) + : TCPConnector(p, ver, settings, cimpl), shim(0), poller(p), certStore(0), cert(0) { + SecInvalidateHandle(&credHandle); memset(&cred, 0, sizeof(cred)); cred.dwVersion = SCHANNEL_CRED_VERSION; @@ -149,10 +150,12 @@ SslConnector::SslConnector(boost::shared_ptr<qpid::sys::Poller> p, SslConnector::~SslConnector() { + if (SecIsValidHandle(&credHandle)) + ::FreeCredentialsHandle(&credHandle); if (cert) ::CertFreeCertificateContext(cert); - ::CertCloseStore(certStore, CERT_CLOSE_STORE_FORCE_FLAG); - ::FreeCredentialsHandle(&credHandle); + if (certStore) + ::CertCloseStore(certStore, CERT_CLOSE_STORE_FORCE_FLAG); } void SslConnector::connect(const std::string& host, const std::string& port) { |