Repository: qpid-dispatch
Updated Branches:
  refs/heads/master 04419edae -> 033252a6f


DISPATCH-1157: fix leaks in auth plugin


Project: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/commit/033252a6
Tree: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/tree/033252a6
Diff: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/diff/033252a6

Branch: refs/heads/master
Commit: 033252a6f132f8dc30864bf2083a8bdba57353d8
Parents: 04419ed
Author: Gordon Sim <g...@redhat.com>
Authored: Wed Oct 24 23:27:38 2018 +0100
Committer: Gordon Sim <g...@redhat.com>
Committed: Wed Oct 24 23:27:43 2018 +0100

----------------------------------------------------------------------
 src/policy.c      | 12 +++++++++---
 src/remote_sasl.c |  5 +----
 2 files changed, 10 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/033252a6/src/policy.c
----------------------------------------------------------------------
diff --git a/src/policy.c b/src/policy.c
index 2b03b73..636292e 100644
--- a/src/policy.c
+++ b/src/policy.c
@@ -499,7 +499,9 @@ void qd_policy_deny_amqp_session(pn_session_t *ssn, 
qd_connection_t *qd_conn)
     (void) pn_condition_set_name(       cond, 
QD_AMQP_COND_RESOURCE_LIMIT_EXCEEDED);
     (void) pn_condition_set_description(cond, SESSION_DISALLOWED);
     pn_session_close(ssn);
-    qd_conn->policy_settings->denialCounts->sessionDenied++;
+    if (qd_conn->policy_settings->denialCounts) {
+        qd_conn->policy_settings->denialCounts->sessionDenied++;
+    }
 }
 
 
@@ -566,7 +568,9 @@ void _qd_policy_deny_amqp_link(pn_link_t *link, 
qd_connection_t *qd_conn, const
 void _qd_policy_deny_amqp_sender_link(pn_link_t *pn_link, qd_connection_t 
*qd_conn, const char *condition)
 {
     _qd_policy_deny_amqp_link(pn_link, qd_conn, condition);
-    qd_conn->policy_settings->denialCounts->senderDenied++;
+    if (qd_conn->policy_settings->denialCounts) {
+        qd_conn->policy_settings->denialCounts->senderDenied++;
+    }
 }
 
 
@@ -575,7 +579,9 @@ void _qd_policy_deny_amqp_sender_link(pn_link_t *pn_link, 
qd_connection_t *qd_co
 void _qd_policy_deny_amqp_receiver_link(pn_link_t *pn_link, qd_connection_t 
*qd_conn, const char *condition)
 {
     _qd_policy_deny_amqp_link(pn_link, qd_conn, condition);
-    qd_conn->policy_settings->denialCounts->receiverDenied++;
+    if (qd_conn->policy_settings->denialCounts) {
+        qd_conn->policy_settings->denialCounts->receiverDenied++;
+    }
 }
 
 

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/033252a6/src/remote_sasl.c
----------------------------------------------------------------------
diff --git a/src/remote_sasl.c b/src/remote_sasl.c
index edd76f1..a291b64 100644
--- a/src/remote_sasl.c
+++ b/src/remote_sasl.c
@@ -243,7 +243,7 @@ static void remote_sasl_free(pn_transport_t *transport)
             }
         } else {
             impl->upstream_released = true;
-            if (impl->downstream_released) {
+            if (impl->downstream_released || impl->downstream == 0) {
                 delete_qdr_sasl_relay_t(impl);
             }
         }
@@ -257,9 +257,6 @@ static void set_policy_settings(pn_connection_t* conn, 
permissions_t* permission
         qd_conn->policy_settings = NEW(qd_policy_settings_t);
         ZERO(qd_conn->policy_settings);
 
-        qd_conn->policy_settings->denialCounts = 
NEW(qd_policy_denial_counts_t);
-        ZERO(qd_conn->policy_settings->denialCounts);
-
         if (permissions->targets.start && permissions->targets.capacity) {
             qd_conn->policy_settings->targets = 
qd_policy_compile_allowed_csv(permissions->targets.start);
         }


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

Reply via email to