Repository: qpid-dispatch Updated Branches: refs/heads/tross-DISPATCH-179-1-QDMESSAGE-MEMLEAK [created] 0513bd685
DISPATCH-179 - Fixed memory leak of qd_message_t objects when doing management requests Project: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/repo Commit: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/commit/2437acf8 Tree: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/tree/2437acf8 Diff: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/diff/2437acf8 Branch: refs/heads/tross-DISPATCH-179-1-QDMESSAGE-MEMLEAK Commit: 2437acf8c2617c243ccc98f73003d66ed851e13b Parents: 75390ae Author: Ganesh Murthy <gmur...@redhat.com> Authored: Thu Feb 25 14:45:07 2016 -0500 Committer: Ganesh Murthy <gmur...@redhat.com> Committed: Thu Feb 25 14:45:07 2016 -0500 ---------------------------------------------------------------------- src/router_core/forwarder.c | 3 +++ src/router_core/management_agent.c | 5 ++++- 2 files changed, 7 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/2437acf8/src/router_core/forwarder.c ---------------------------------------------------------------------- diff --git a/src/router_core/forwarder.c b/src/router_core/forwarder.c index fc3f4c1..e2a0897 100644 --- a/src/router_core/forwarder.c +++ b/src/router_core/forwarder.c @@ -92,6 +92,7 @@ void qdr_forward_deliver_CT(qdr_core_t *core, qdr_link_t *link, qdr_delivery_t * void qdr_forward_on_message(qdr_core_t *core, qdr_general_work_t *work) { work->on_message(work->on_message_context, work->msg, work->maskbit); + qd_message_free(work->msg); } @@ -323,6 +324,8 @@ int qdr_forward_closest_CT(qdr_core_t *core, } } + + return 0; } http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/2437acf8/src/router_core/management_agent.c ---------------------------------------------------------------------- diff --git a/src/router_core/management_agent.c b/src/router_core/management_agent.c index 76d25bc..7bd0b9a 100644 --- a/src/router_core/management_agent.c +++ b/src/router_core/management_agent.c @@ -97,7 +97,7 @@ static qd_management_context_t* qd_management_context(qd_message_t ctx->count = count; ctx->field = field; ctx->msg = msg; - ctx->source = source; + ctx->source = qd_message_copy(source); ctx->query = query; ctx->current_count = 0; ctx->core = core; @@ -195,6 +195,9 @@ 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) + qd_message_free(ctx->source); + free_qd_management_context_t(ctx); } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org For additional commands, e-mail: commits-h...@qpid.apache.org