Branch: master

2e9737f1 2015-10-23 02:36:42 Timothy Pearson
Fix memory leak on certificate request attempt
M src/libtdeldap.cpp
diff --git a/src/libtdeldap.cpp b/src/libtdeldap.cpp
index 8a14cc3..eddd74c 100644
--- a/src/libtdeldap.cpp
+++ b/src/libtdeldap.cpp
@@ -371,12 +371,14 @@
 				}
 				int retcode = ldap_initialize(&ldapconn, uri.ascii());
 				if (retcode < 0) {
+					ldap_unbind_ext_s(ldapconn, NULL, NULL);
 					if (errstr) *errstr = i18n("<qt>Unable to connect to LDAP server %1 on port %2<p>Reason: [%3] %4</qt>").arg(m_host).arg(m_port).arg(retcode).arg(ldap_err2string(retcode));
 					else KMessageBox::error(0, i18n("<qt>Unable to connect to LDAP server %1 on port %2<p>Reason: [%3] %4</qt>").arg(m_host).arg(m_port).arg(retcode).arg(ldap_err2string(retcode)), i18n("Unable to connect to server!"));
 					return -1;
 				}
 				retcode = ldap_set_option(ldapconn, LDAP_OPT_PROTOCOL_VERSION, &requested_ldap_version);
 				if (retcode != LDAP_OPT_SUCCESS) {
+					ldap_unbind_ext_s(ldapconn, NULL, NULL);
 					if (errstr) *errstr = i18n("<qt>Unable to connect to LDAP server %1 on port %2<p>Reason: [%3] %4</qt>").arg(m_host).arg(m_port).arg(retcode).arg(ldap_err2string(retcode));
 					else KMessageBox::error(0, i18n("<qt>Unable to connect to LDAP server %1 on port %2<p>Reason: [%3] %4</qt>").arg(m_host).arg(m_port).arg(retcode).arg(ldap_err2string(retcode)), i18n("Unable to connect to server!"));
 					return -1;