From 24160ee6a4a0727840d73955b99aef690450f345 Mon Sep 17 00:00:00 2001 From: Martin Schwenke Date: Mon, 11 Jan 2016 13:41:30 +1100 Subject: [PATCH] ctdb-daemon: Don't leak memory if not using recovery lock Signed-off-by: Martin Schwenke Reviewed-by: Michael Adam --- ctdb/server/ctdb_recover.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/ctdb/server/ctdb_recover.c b/ctdb/server/ctdb_recover.c index 7b34d7e2913..127ff6bdfbf 100644 --- a/ctdb/server/ctdb_recover.c +++ b/ctdb/server/ctdb_recover.c @@ -592,13 +592,6 @@ int32_t ctdb_control_set_recmode(struct ctdb_context *ctdb, } } - state = talloc(ctdb, struct ctdb_set_recmode_state); - CTDB_NO_MEMORY(ctdb, state); - - state->start_time = timeval_current(); - state->fd[0] = -1; - state->fd[1] = -1; - /* release any deferred attach calls from clients */ if (recmode == CTDB_RECOVERY_NORMAL) { ctdb_process_deferred_attach(ctdb); @@ -610,6 +603,13 @@ int32_t ctdb_control_set_recmode(struct ctdb_context *ctdb, return 0; } + state = talloc(ctdb, struct ctdb_set_recmode_state); + CTDB_NO_MEMORY(ctdb, state); + + state->start_time = timeval_current(); + state->fd[0] = -1; + state->fd[1] = -1; + /* For the rest of what needs to be done, we need to do this in a child process since 1, the call to ctdb_recovery_lock() can block if the cluster -- 2.34.1