summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
authorMark Spruiell <mes@zeroc.com>2011-05-19 17:13:17 -0700
committerMark Spruiell <mes@zeroc.com>2011-05-19 17:13:17 -0700
commit2db654a37a878ba508cc7cba8c87ff8aa0d8356c (patch)
treed50080d27760bfacec3899510ef5eec202a01b64 /cpp/src
parent5102 - test/Ice/operations don't compile with BCC 2010 (diff)
downloadice-2db654a37a878ba508cc7cba8c87ff8aa0d8356c.tar.bz2
ice-2db654a37a878ba508cc7cba8c87ff8aa0d8356c.tar.xz
ice-2db654a37a878ba508cc7cba8c87ff8aa0d8356c.zip
bug 5098 - leak in IceSSL::TransceiverI
Diffstat (limited to 'cpp/src')
-rw-r--r--cpp/src/IceSSL/TransceiverI.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/cpp/src/IceSSL/TransceiverI.cpp b/cpp/src/IceSSL/TransceiverI.cpp
index 7265708a17c..52833fdea98 100644
--- a/cpp/src/IceSSL/TransceiverI.cpp
+++ b/cpp/src/IceSSL/TransceiverI.cpp
@@ -116,6 +116,9 @@ IceSSL::TransceiverI::initialize()
if(!_ssl)
{
BIO_free(bio);
+#ifdef ICE_USE_IOCP
+ BIO_free(_iocpBio);
+#endif
SecurityException ex(__FILE__, __LINE__);
ex.reason = "openssl failure";
throw ex;
@@ -300,6 +303,14 @@ IceSSL::TransceiverI::close()
_ssl = 0;
}
+#ifdef ICE_USE_IOCP
+ if(_iocpBio)
+ {
+ BIO_free(_iocpBio);
+ _iocpBio = 0;
+ }
+#endif
+
assert(_fd != INVALID_SOCKET);
try
{