summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAmitay Isaacs <amitay@gmail.com>2016-08-04 15:50:38 +1000
committerStefan Metzmacher <metze@samba.org>2016-08-10 11:24:37 +0200
commit5e6bcb988aee0a8fcabdb34d06ac0590de2c6d01 (patch)
tree62c5362ab3b477793a2dd91a6d980bc2d7f26e92
parentdcae84874e1eab24ad9f7a91ca6bd152c2d5cd07 (diff)
downloadsamba-5e6bcb988aee0a8fcabdb34d06ac0590de2c6d01.tar.gz
ctdb-tools: Fix CID 1364703 - resource leak
BUG: https://bugzilla.samba.org/show_bug.cgi?id=12121 Signed-off-by: Amitay Isaacs <amitay@gmail.com> Reviewed-by: Martin Schwenke <martin@meltin.net> (cherry picked from commit 94bf6e69dba1b97d90168efceaafa43d27186778)
-rw-r--r--ctdb/tools/ctdb.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/ctdb/tools/ctdb.c b/ctdb/tools/ctdb.c
index 196832962b6..fbf89f51594 100644
--- a/ctdb/tools/ctdb.c
+++ b/ctdb/tools/ctdb.c
@@ -4248,18 +4248,21 @@ static int control_restoredb(TALLOC_CTX *mem_ctx, struct ctdb_context *ctdb,
nodemap = get_nodemap(ctdb, false);
if (nodemap == NULL) {
fprintf(stderr, "Failed to get nodemap\n");
+ close(fd);
return ENOMEM;
}
ret = get_generation(mem_ctx, ctdb, &generation);
if (ret != 0) {
fprintf(stderr, "Failed to get current generation\n");
+ close(fd);
return ret;
}
count = list_of_active_nodes(nodemap, CTDB_UNKNOWN_PNN, mem_ctx,
&pnn_list);
if (count <= 0) {
+ close(fd);
return ENOMEM;
}
@@ -4390,6 +4393,7 @@ static int control_restoredb(TALLOC_CTX *mem_ctx, struct ctdb_context *ctdb,
failed:
+ close(fd);
ctdb_ctrl_set_recmode(mem_ctx, ctdb->ev, ctdb->client,
ctdb->pnn, TIMEOUT(), CTDB_RECOVERY_ACTIVE);
return ret;