From: Amitay Isaacs Date: Thu, 4 Aug 2016 05:50:38 +0000 (+1000) Subject: ctdb-tools: Fix CID 1364703 - resource leak X-Git-Tag: tevent-0.9.30~215 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=94bf6e69dba1b97d90168efceaafa43d27186778;p=thirdparty%2Fsamba.git ctdb-tools: Fix CID 1364703 - resource leak BUG: https://bugzilla.samba.org/show_bug.cgi?id=12121 Signed-off-by: Amitay Isaacs Reviewed-by: Martin Schwenke --- diff --git a/ctdb/tools/ctdb.c b/ctdb/tools/ctdb.c index c3003926a4e..4e767ae0fd3 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;