You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by tr...@apache.org on 2016/03/30 15:33:03 UTC

qpid-dispatch git commit: DISPATCH-245 - Fixed bugs discovered by the Coverity scan.

Repository: qpid-dispatch
Updated Branches:
  refs/heads/master b82c030c4 -> c6ff8e352


DISPATCH-245 - Fixed bugs discovered by the Coverity scan.


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

Branch: refs/heads/master
Commit: c6ff8e352991f42189163e932343159b1c90e08d
Parents: b82c030
Author: Ted Ross <tr...@redhat.com>
Authored: Wed Mar 30 09:32:28 2016 -0400
Committer: Ted Ross <tr...@redhat.com>
Committed: Wed Mar 30 09:32:28 2016 -0400

----------------------------------------------------------------------
 src/connection_manager.c               |  3 ++-
 src/iterator.c                         |  3 ++-
 src/router_core/agent_address.c        |  2 +-
 src/router_core/agent_config_address.c |  2 +-
 src/router_core/connections.c          |  3 ++-
 src/router_core/management_agent.c     |  2 +-
 src/router_core/transfer.c             | 19 ++++++++++---------
 src/router_node.c                      |  4 ++--
 src/router_pynode.c                    |  4 +++-
 9 files changed, 24 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/c6ff8e35/src/connection_manager.c
----------------------------------------------------------------------
diff --git a/src/connection_manager.c b/src/connection_manager.c
index ee0b126..67495ac 100644
--- a/src/connection_manager.c
+++ b/src/connection_manager.c
@@ -326,9 +326,10 @@ void qd_config_connector_free(qd_config_connector_t *cc)
 
 void qd_config_listener_free(qd_config_listener_t *cl)
 {
-    if (cl->listener)
+    if (cl->listener) {
         qd_server_listener_close(cl->listener);
         qd_server_listener_free(cl->listener);
+    }
     free(cl);
 }
 

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/c6ff8e35/src/iterator.c
----------------------------------------------------------------------
diff --git a/src/iterator.c b/src/iterator.c
index cf4d67f..45a3234 100644
--- a/src/iterator.c
+++ b/src/iterator.c
@@ -611,7 +611,8 @@ qd_field_iterator_t *qd_field_iterator_dup(const qd_field_iterator_t *iter)
         return 0;
 
     qd_field_iterator_t *dup = new_qd_field_iterator_t();
-    *dup = *iter;
+    if (dup)
+        *dup = *iter;
     return dup;
 }
 

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/c6ff8e35/src/router_core/agent_address.c
----------------------------------------------------------------------
diff --git a/src/router_core/agent_address.c b/src/router_core/agent_address.c
index ef8145c..f4c603e 100644
--- a/src/router_core/agent_address.c
+++ b/src/router_core/agent_address.c
@@ -182,7 +182,7 @@ void qdra_address_get_CT(qdr_core_t          *core,
                          qdr_query_t         *query,
                          const char          *qdr_address_columns[])
 {
-    qdr_address_t *addr;
+    qdr_address_t *addr = 0;
 
     if (identity) //If there is identity, ignore the name
         qd_hash_retrieve(core->addr_hash, identity, (void*) &addr);

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/c6ff8e35/src/router_core/agent_config_address.c
----------------------------------------------------------------------
diff --git a/src/router_core/agent_config_address.c b/src/router_core/agent_config_address.c
index 2a86ad8..e57b9c4 100644
--- a/src/router_core/agent_config_address.c
+++ b/src/router_core/agent_config_address.c
@@ -351,7 +351,7 @@ void qdra_config_address_create_CT(qdr_core_t          *core,
 
         bool waypoint  = waypoint_field  ? qd_parse_as_bool(waypoint_field) : false;
         int  in_phase  = in_phase_field  ? qd_parse_as_int(in_phase_field)  : -1;
-        int  out_phase = out_phase_field ? qd_parse_as_int(in_phase_field)  : -1;
+        int  out_phase = out_phase_field ? qd_parse_as_int(out_phase_field) : -1;
 
         //
         // Handle the address-phasing logic.  If the phases are provided, use them.  Otherwise

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/c6ff8e35/src/router_core/connections.c
----------------------------------------------------------------------
diff --git a/src/router_core/connections.c b/src/router_core/connections.c
index 597d858..4cfc8cd 100644
--- a/src/router_core/connections.c
+++ b/src/router_core/connections.c
@@ -922,6 +922,7 @@ static void qdr_link_inbound_first_attach_CT(qdr_core_t *core, qdr_action_t *act
         qdr_link_outbound_detach_CT(core, link, 0, QDR_CONDITION_FORBIDDEN);
         qdr_terminus_free(source);
         qdr_terminus_free(target);
+        return;
     }
 
     if (dir == QD_INCOMING) {
@@ -1224,7 +1225,7 @@ static void qdr_link_inbound_detach_CT(qdr_core_t *core, qdr_action_t *action, b
         // If the detach occurred via protocol, send a detach back.
         //
         if (dt != QD_LOST)
-            qdr_link_outbound_detach_CT(core, link, 0, 0);  // TODO - Fix error arg
+            qdr_link_outbound_detach_CT(core, link, 0, QDR_CONDITION_NONE);  // TODO - Fix error arg
     } else {
         qdr_link_cleanup_CT(core, conn, link);
         free_qdr_link_t(link);

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/c6ff8e35/src/router_core/management_agent.c
----------------------------------------------------------------------
diff --git a/src/router_core/management_agent.c b/src/router_core/management_agent.c
index 4755f13..19e84dd 100644
--- a/src/router_core/management_agent.c
+++ b/src/router_core/management_agent.c
@@ -200,7 +200,7 @@ static void qd_manage_response_handler(void *context, const qd_amqp_error_t *sta
 
     if (ctx->msg)
         qd_message_free(ctx->msg);
-    if(ctx->source)
+    if (ctx->source)
         qd_message_free(ctx->source);
 
     free_qd_management_context_t(ctx);

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/c6ff8e35/src/router_core/transfer.c
----------------------------------------------------------------------
diff --git a/src/router_core/transfer.c b/src/router_core/transfer.c
index 0a19444..8b2d574 100644
--- a/src/router_core/transfer.c
+++ b/src/router_core/transfer.c
@@ -424,7 +424,7 @@ static void qdr_send_to_CT(qdr_core_t *core, qdr_action_t *action, bool discard)
     qd_message_t *msg        = action->args.io.message;
 
     if (!discard) {
-        qdr_address_t *addr;
+        qdr_address_t *addr = 0;
 
         qd_address_iterator_reset_view(addr_field->iterator, ITER_VIEW_ADDRESS_HASH);
         qd_hash_retrieve(core->addr_hash, addr_field->iterator, (void**) &addr);
@@ -580,22 +580,23 @@ void qdr_addr_start_inlinks_CT(qdr_core_t *core, qdr_address_t *addr)
 
 void qdr_delivery_push_CT(qdr_core_t *core, qdr_delivery_t *dlv)
 {
-    if (!dlv || !dlv->link || dlv->where == QDR_DELIVERY_IN_UNDELIVERED)
+    if (!dlv || !dlv->link)
         return;
 
     qdr_link_t *link = dlv->link;
+    bool activate = false;
 
     sys_mutex_lock(link->conn->work_lock);
-    qdr_add_delivery_ref(&link->updated_deliveries, dlv);
-
-    //
-    // Put this link on the connection's list of links with delivery activity.
-    //
-    qdr_add_link_ref(&link->conn->links_with_deliveries, link, QDR_LINK_LIST_CLASS_DELIVERY);
+    if (dlv->where != QDR_DELIVERY_IN_UNDELIVERED) {
+        qdr_add_delivery_ref(&link->updated_deliveries, dlv);
+        qdr_add_link_ref(&link->conn->links_with_deliveries, link, QDR_LINK_LIST_CLASS_DELIVERY);
+        activate = true;
+    }
     sys_mutex_unlock(link->conn->work_lock);
 
     //
     // Activate the connection
     //
-    qdr_connection_activate_CT(core, link->conn);
+    if (activate)
+        qdr_connection_activate_CT(core, link->conn);
 }

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/c6ff8e35/src/router_node.c
----------------------------------------------------------------------
diff --git a/src/router_node.c b/src/router_node.c
index 9c7840b..4b0f6e9 100644
--- a/src/router_node.c
+++ b/src/router_node.c
@@ -50,8 +50,8 @@ static void qd_router_connection_get_config(const qd_connection_t  *conn,
     if (conn) {
         const qd_server_config_t *cf = qd_connection_config(conn);
 
-        *strip_annotations_in  = cf->strip_inbound_annotations;
-        *strip_annotations_out = cf->strip_outbound_annotations;
+        *strip_annotations_in  = cf ? cf->strip_inbound_annotations  : false;
+        *strip_annotations_out = cf ? cf->strip_outbound_annotations : false;
 
         if        (cf && strcmp(cf->role, router_role) == 0) {
             *strip_annotations_in  = false;

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/c6ff8e35/src/router_pynode.c
----------------------------------------------------------------------
diff --git a/src/router_pynode.c b/src/router_pynode.c
index db95d9b..6b0cda8 100644
--- a/src/router_pynode.c
+++ b/src/router_pynode.c
@@ -184,8 +184,10 @@ static PyObject* qd_set_valid_origins(PyObject *self, PyObject *args)
                 maskbit = PyInt_AS_LONG(PyList_GetItem(origin_list, idx));
                 qd_bitmask_set_bit(core_bitmask, maskbit);
             }
-        } else
+        } else {
             qd_bitmask_free(core_bitmask);
+            break;
+        }
 
         qdr_core_set_valid_origins(router->router_core, router_maskbit, core_bitmask);
     } while (0);


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