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