From 70e35ba9b1a9ea8fc21bacc46967d74656b57a30 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Fri, 28 Sep 2012 08:09:09 -0700 Subject: [PATCH] cephtool: fix resource leak CID 717124: Resource leak (RESOURCE_LEAK) At (17): Variable "m" going out of scope leaks the storage it points to. Signed-off-by: Sage Weil --- src/tools/common.cc | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/tools/common.cc b/src/tools/common.cc index 1c1a3bc397c..c5005689822 100644 --- a/src/tools/common.cc +++ b/src/tools/common.cc @@ -134,11 +134,6 @@ static void send_command(CephToolCtx *ctx) if (!ctx->concise) *ctx->log << ceph_clock_now(g_ceph_context) << " " << pending_target << " <- " << pending_cmd << std::endl; - MCommand *m = new MCommand(ctx->mc.monmap.fsid); - m->cmd = pending_cmd; - m->set_data(pending_bl); - m->set_tid(++pending_tid); - if (pending_tell_pgid) { // pick target osd vector osds; @@ -172,10 +167,14 @@ static void send_command(CephToolCtx *ctx) reply_rc = -ESRCH; reply = true; } else { - if (!ctx->concise) *ctx->log << ceph_clock_now(g_ceph_context) << " " << pending_target << " <- " << pending_cmd << std::endl; + MCommand *m = new MCommand(ctx->mc.monmap.fsid); + m->cmd = pending_cmd; + m->set_data(pending_bl); + m->set_tid(++pending_tid); + command_con = messenger->get_connection(osdmap->get_inst(n)); messenger->send_message(m, command_con);