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 2016/03/01 18:28:25 UTC
[3/3] qpid-dispatch git commit: DISPATCH-179 - Fixed memory leak of
qd_parsed_field_t object in qd_core_agent_create_handler
DISPATCH-179 - Fixed memory leak of qd_parsed_field_t object in qd_core_agent_create_handler
Project: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/commit/0513bd68
Tree: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/tree/0513bd68
Diff: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/diff/0513bd68
Branch: refs/heads/tross-DISPATCH-179-1-QDMESSAGE-MEMLEAK
Commit: 0513bd6855989e5fd5200d10634ead7d5359c7f4
Parents: f305dbf
Author: Ganesh Murthy <gm...@redhat.com>
Authored: Mon Feb 29 11:00:40 2016 -0500
Committer: Ganesh Murthy <gm...@redhat.com>
Committed: Mon Feb 29 11:00:40 2016 -0500
----------------------------------------------------------------------
src/router_core/agent.c | 22 +++++++++++++---------
src/router_core/management_agent.c | 8 +++++++-
2 files changed, 20 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/0513bd68/src/router_core/agent.c
----------------------------------------------------------------------
diff --git a/src/router_core/agent.c b/src/router_core/agent.c
index c45e20e..01bcd15 100644
--- a/src/router_core/agent.c
+++ b/src/router_core/agent.c
@@ -115,7 +115,8 @@ void qdr_manage_create(qdr_core_t *core,
}
-void qdr_manage_delete(qdr_core_t *core, void *context,
+void qdr_manage_delete(qdr_core_t *core,
+ void *context,
qd_router_entity_type_t type,
qd_field_iterator_t *name,
qd_field_iterator_t *identity)
@@ -131,7 +132,8 @@ void qdr_manage_delete(qdr_core_t *core, void *context,
}
-void qdr_manage_read(qdr_core_t *core, void *context,
+void qdr_manage_read(qdr_core_t *core,
+ void *context,
qd_router_entity_type_t entity_type,
qd_field_iterator_t *name,
qd_field_iterator_t *identity,
@@ -344,14 +346,16 @@ static void qdr_manage_create_CT(qdr_core_t *core, qdr_action_t *action, bool di
qd_parsed_field_t *in_body = action->args.agent.in_body;
switch (query->entity_type) {
- case QD_ROUTER_PROVISIONED: qdra_provisioned_create_CT(core, name, query, in_body); break;
- case QD_ROUTER_CONNECTION: break;
- case QD_ROUTER_LINK: break;
- case QD_ROUTER_ADDRESS: break;
- case QD_ROUTER_WAYPOINT: qdra_waypoint_create_CT(core, name, query, in_body); break;
- case QD_ROUTER_EXCHANGE: break;
- case QD_ROUTER_BINDING: break;
+ case QD_ROUTER_PROVISIONED: qdra_provisioned_create_CT(core, name, query, in_body); break;
+ case QD_ROUTER_CONNECTION: break;
+ case QD_ROUTER_LINK: break;
+ case QD_ROUTER_ADDRESS: break;
+ case QD_ROUTER_WAYPOINT: qdra_waypoint_create_CT(core, name, query, in_body); break;
+ case QD_ROUTER_EXCHANGE: break;
+ case QD_ROUTER_BINDING: break;
}
+
+ qd_parse_free(in_body);
}
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/0513bd68/src/router_core/management_agent.c
----------------------------------------------------------------------
diff --git a/src/router_core/management_agent.c b/src/router_core/management_agent.c
index 1735dd2..deef7ae 100644
--- a/src/router_core/management_agent.c
+++ b/src/router_core/management_agent.c
@@ -292,7 +292,13 @@ static void qd_core_agent_create_handler(qdr_core_t *core,
// Call local function that creates and returns a qd_management_context_t containing the values passed in.
qd_management_context_t *ctx = qd_management_context(qd_message(), msg, out_body, 0, core, operation_type, 0);
- qdr_manage_create(core, ctx, entity_type, name_iter, qd_parse(qd_message_field_iterator(msg, QD_FIELD_BODY)), out_body);
+ qd_field_iterator_t *body_iter = qd_message_field_iterator(msg, QD_FIELD_BODY);
+
+ qd_parsed_field_t *in_body = qd_parse(body_iter);
+
+ qdr_manage_create(core, ctx, entity_type, name_iter, in_body, out_body);
+
+ qd_field_iterator_free(body_iter);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org