You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by gm...@apache.org on 2017/03/16 18:30:21 UTC

qpid-dispatch git commit: DISPATCH-730 - Partial fix to some memory leaks reported by coverity

Repository: qpid-dispatch
Updated Branches:
  refs/heads/master 8800ab543 -> 36930bbd7


DISPATCH-730 - Partial fix to some memory leaks reported by coverity


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

Branch: refs/heads/master
Commit: 36930bbd74462dbd20d4f0168c1acea91c6e7a72
Parents: 8800ab5
Author: Ganesh Murthy <gm...@redhat.com>
Authored: Thu Mar 16 14:29:58 2017 -0400
Committer: Ganesh Murthy <gm...@redhat.com>
Committed: Thu Mar 16 14:29:58 2017 -0400

----------------------------------------------------------------------
 src/connection_manager.c |  2 +-
 src/failoverlist.c       |  4 +++-
 src/server.c             | 56 ++++++++++++++++++++++---------------------
 3 files changed, 33 insertions(+), 29 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/36930bbd/src/connection_manager.c
----------------------------------------------------------------------
diff --git a/src/connection_manager.c b/src/connection_manager.c
index b00ab6e..be406d6 100644
--- a/src/connection_manager.c
+++ b/src/connection_manager.c
@@ -437,7 +437,7 @@ qd_config_ssl_profile_t *qd_dispatch_configure_ssl_profile(qd_dispatch_t *qd, qd
             if (file) {
                 char buffer[200];
 
-                char c;
+                int c;
                 int i=0;
 
                 while(true) {

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/36930bbd/src/failoverlist.c
----------------------------------------------------------------------
diff --git a/src/failoverlist.c b/src/failoverlist.c
index 411c230..e83f029 100644
--- a/src/failoverlist.c
+++ b/src/failoverlist.c
@@ -99,8 +99,10 @@ qd_failover_list_t *qd_failover_list(const char *text, const char **error)
     do {
         next = qd_fol_next(cursor, ",");
         qd_failover_item_t *item = qd_fol_item(cursor, error);
-        if (item == 0)
+        if (item == 0) {
+            qd_failover_list_free(list);
             return 0;
+        }
         DEQ_INSERT_TAIL(list->item_list, item);
         cursor = next;
     } while (cursor && *cursor);

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/36930bbd/src/server.c
----------------------------------------------------------------------
diff --git a/src/server.c b/src/server.c
index 94f96ef..8d2178c 100644
--- a/src/server.c
+++ b/src/server.c
@@ -561,42 +561,44 @@ static void decorate_connection(qd_server_t *qd_server, pn_connection_t *conn, c
         pn_data_put_int(pn_connection_properties(conn), config->inter_router_cost);
     }
 
-    qd_failover_list_t *fol = config->failover_list;
-    if (fol) {
-        pn_data_put_symbol(pn_connection_properties(conn),
-                           pn_bytes(strlen(QD_CONNECTION_PROPERTY_FAILOVER_LIST_KEY), QD_CONNECTION_PROPERTY_FAILOVER_LIST_KEY));
-        pn_data_put_list(pn_connection_properties(conn));
-        pn_data_enter(pn_connection_properties(conn));
-        int fol_count = qd_failover_list_size(fol);
-        for (int i = 0; i < fol_count; i++) {
-            pn_data_put_map(pn_connection_properties(conn));
-            pn_data_enter(pn_connection_properties(conn));
-            pn_data_put_symbol(pn_connection_properties(conn),
-                               pn_bytes(strlen(QD_CONNECTION_PROPERTY_FAILOVER_NETHOST_KEY), QD_CONNECTION_PROPERTY_FAILOVER_NETHOST_KEY));
-            pn_data_put_string(pn_connection_properties(conn),
-                               pn_bytes(strlen(qd_failover_list_host(fol, i)), qd_failover_list_host(fol, i)));
-
+    if (config) {
+        qd_failover_list_t *fol = config->failover_list;
+        if (fol) {
             pn_data_put_symbol(pn_connection_properties(conn),
-                               pn_bytes(strlen(QD_CONNECTION_PROPERTY_FAILOVER_PORT_KEY), QD_CONNECTION_PROPERTY_FAILOVER_PORT_KEY));
-            pn_data_put_string(pn_connection_properties(conn),
-                               pn_bytes(strlen(qd_failover_list_port(fol, i)), qd_failover_list_port(fol, i)));
-
-            if (qd_failover_list_scheme(fol, i)) {
+                               pn_bytes(strlen(QD_CONNECTION_PROPERTY_FAILOVER_LIST_KEY), QD_CONNECTION_PROPERTY_FAILOVER_LIST_KEY));
+            pn_data_put_list(pn_connection_properties(conn));
+            pn_data_enter(pn_connection_properties(conn));
+            int fol_count = qd_failover_list_size(fol);
+            for (int i = 0; i < fol_count; i++) {
+                pn_data_put_map(pn_connection_properties(conn));
+                pn_data_enter(pn_connection_properties(conn));
                 pn_data_put_symbol(pn_connection_properties(conn),
-                                   pn_bytes(strlen(QD_CONNECTION_PROPERTY_FAILOVER_SCHEME_KEY), QD_CONNECTION_PROPERTY_FAILOVER_SCHEME_KEY));
+                                   pn_bytes(strlen(QD_CONNECTION_PROPERTY_FAILOVER_NETHOST_KEY), QD_CONNECTION_PROPERTY_FAILOVER_NETHOST_KEY));
                 pn_data_put_string(pn_connection_properties(conn),
-                                   pn_bytes(strlen(qd_failover_list_scheme(fol, i)), qd_failover_list_scheme(fol, i)));
-            }
+                                   pn_bytes(strlen(qd_failover_list_host(fol, i)), qd_failover_list_host(fol, i)));
 
-            if (qd_failover_list_hostname(fol, i)) {
                 pn_data_put_symbol(pn_connection_properties(conn),
-                                   pn_bytes(strlen(QD_CONNECTION_PROPERTY_FAILOVER_HOSTNAME_KEY), QD_CONNECTION_PROPERTY_FAILOVER_HOSTNAME_KEY));
+                                   pn_bytes(strlen(QD_CONNECTION_PROPERTY_FAILOVER_PORT_KEY), QD_CONNECTION_PROPERTY_FAILOVER_PORT_KEY));
                 pn_data_put_string(pn_connection_properties(conn),
-                                   pn_bytes(strlen(qd_failover_list_hostname(fol, i)), qd_failover_list_hostname(fol, i)));
+                                   pn_bytes(strlen(qd_failover_list_port(fol, i)), qd_failover_list_port(fol, i)));
+
+                if (qd_failover_list_scheme(fol, i)) {
+                    pn_data_put_symbol(pn_connection_properties(conn),
+                                       pn_bytes(strlen(QD_CONNECTION_PROPERTY_FAILOVER_SCHEME_KEY), QD_CONNECTION_PROPERTY_FAILOVER_SCHEME_KEY));
+                    pn_data_put_string(pn_connection_properties(conn),
+                                       pn_bytes(strlen(qd_failover_list_scheme(fol, i)), qd_failover_list_scheme(fol, i)));
+                }
+
+                if (qd_failover_list_hostname(fol, i)) {
+                    pn_data_put_symbol(pn_connection_properties(conn),
+                                       pn_bytes(strlen(QD_CONNECTION_PROPERTY_FAILOVER_HOSTNAME_KEY), QD_CONNECTION_PROPERTY_FAILOVER_HOSTNAME_KEY));
+                    pn_data_put_string(pn_connection_properties(conn),
+                                       pn_bytes(strlen(qd_failover_list_hostname(fol, i)), qd_failover_list_hostname(fol, i)));
+                }
+                pn_data_exit(pn_connection_properties(conn));
             }
             pn_data_exit(pn_connection_properties(conn));
         }
-        pn_data_exit(pn_connection_properties(conn));
     }
 
     pn_data_exit(pn_connection_properties(conn));


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