Repository: qpid-proton
Updated Branches:
  refs/heads/master 49c005b30 -> 205ba181b


PROTON-822: fixed ssl domain memory leaks


Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/7f6442c6
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/7f6442c6
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/7f6442c6

Branch: refs/heads/master
Commit: 7f6442c6a0a4cd34e3f1561c62aabc72b3736d88
Parents: 49c005b
Author: Rafael Schloming <r...@alum.mit.edu>
Authored: Wed Feb 18 00:41:26 2015 -0500
Committer: Rafael Schloming <r...@alum.mit.edu>
Committed: Wed Feb 18 00:44:57 2015 -0500

----------------------------------------------------------------------
 proton-c/bindings/python/proton/__init__.py | 3 +++
 proton-c/src/messenger/messenger.c          | 4 ++++
 2 files changed, 7 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/7f6442c6/proton-c/bindings/python/proton/__init__.py
----------------------------------------------------------------------
diff --git a/proton-c/bindings/python/proton/__init__.py 
b/proton-c/bindings/python/proton/__init__.py
index 022ac5d..7f14650 100644
--- a/proton-c/bindings/python/proton/__init__.py
+++ b/proton-c/bindings/python/proton/__init__.py
@@ -3304,6 +3304,9 @@ class SSLDomain(object):
   def allow_unsecured_client(self):
     return self._check( pn_ssl_domain_allow_unsecured_client(self._domain) )
 
+  def __del__(self):
+    pn_ssl_domain_free(self._domain)
+
 class SSL(object):
 
   @staticmethod

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/7f6442c6/proton-c/src/messenger/messenger.c
----------------------------------------------------------------------
diff --git a/proton-c/src/messenger/messenger.c 
b/proton-c/src/messenger/messenger.c
index b7e1f53..161185e 100644
--- a/proton-c/src/messenger/messenger.c
+++ b/proton-c/src/messenger/messenger.c
@@ -887,6 +887,7 @@ static int pn_transport_config(pn_messenger_t *messenger,
                                                messenger->private_key,
                                                messenger->password);
       if (err) {
+        pn_ssl_domain_free(d);
         pn_error_report("CONNECTION", "invalid credentials");
         return err;
       }
@@ -894,17 +895,20 @@ static int pn_transport_config(pn_messenger_t *messenger,
     if (messenger->trusted_certificates) {
       int err = pn_ssl_domain_set_trusted_ca_db(d, 
messenger->trusted_certificates);
       if (err) {
+        pn_ssl_domain_free(d);
         pn_error_report("CONNECTION", "invalid certificate db");
         return err;
       }
       err = pn_ssl_domain_set_peer_authentication(
           d, messenger->ssl_peer_authentication_mode, NULL);
       if (err) {
+        pn_ssl_domain_free(d);
         pn_error_report("CONNECTION", "error configuring ssl to verify peer");
       }
     } else {
       int err = pn_ssl_domain_set_peer_authentication(d, 
PN_SSL_ANONYMOUS_PEER, NULL);
       if (err) {
+        pn_ssl_domain_free(d);
         pn_error_report("CONNECTION", "error configuring ssl for anonymous 
peer");
         return err;
       }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org
For additional commands, e-mail: commits-h...@qpid.apache.org

Reply via email to