a memory leak may occur if a takeover_request is processed after split brain prevention is disabled at runtime --- src/rde/rded/rde_main.cc | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/src/rde/rded/rde_main.cc b/src/rde/rded/rde_main.cc index f511814..bb17133 100644 --- a/src/rde/rded/rde_main.cc +++ b/src/rde/rded/rde_main.cc @@ -181,10 +181,13 @@ static void handle_mbx_event() { break; case RDE_MSG_TAKEOVER_REQUEST_CALLBACK: { rde_cb->monitor_takeover_req_thread_running = false; + const std::string takeover_request(msg->info.takeover_request); + delete[] msg->info.takeover_request; + msg->info.takeover_request = nullptr; if (role->role() == PCS_RDA_ACTIVE) { TRACE("Received takeover request '%s'. Our network size is %zu", - msg->info.takeover_request, + takeover_request.c_str(), rde_cb->cluster_members.size()); Consensus consensus_service; @@ -195,8 +198,7 @@ static void handle_mbx_event() { Consensus::TakeoverState state = consensus_service.HandleTakeoverRequest( rde_cb->cluster_members.size(), - msg->info.takeover_request); - delete[] msg->info.takeover_request; + takeover_request); if (state == Consensus::TakeoverState::ACCEPTED) { LOG_NO("Accepted takeover request"); -- 2.7.4 _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel