summaryrefslogtreecommitdiff
path: root/ctdb
diff options
context:
space:
mode:
authorRajesh Joseph <rjoseph@redhat.com>2015-04-16 11:55:53 +0530
committerGünther Deschner <gd@samba.org>2015-04-17 16:49:04 +0200
commit9b33732a57a919059bf17e9348a60019146e9e1d (patch)
tree9e9b0cde38abec922422dcc1848021e993cfca7e /ctdb
parenta689cd5d955214fe94f19af9d1b5aec6d44d568a (diff)
downloadsamba-9b33732a57a919059bf17e9348a60019146e9e1d.tar.gz
ctdb: Coverity fix for CID 1125630
Due to usage of CTDB_NO_MEMORY macro, some of the resources are not freed in failure cases. Signed-off-by: Rajesh Joseph <rjoseph@redhat.com> Reviewed-by: Guenther Deschner <gd@samba.org> Reviewed-by: Michael Adam <obnox@samba.org> Autobuild-User(master): Günther Deschner <gd@samba.org> Autobuild-Date(master): Fri Apr 17 16:49:05 CEST 2015 on sn-devel-104
Diffstat (limited to 'ctdb')
-rw-r--r--ctdb/server/ctdb_takeover.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/ctdb/server/ctdb_takeover.c b/ctdb/server/ctdb_takeover.c
index 2b274f75b53..cf1a1c30fbc 100644
--- a/ctdb/server/ctdb_takeover.c
+++ b/ctdb/server/ctdb_takeover.c
@@ -1005,11 +1005,22 @@ int32_t ctdb_control_release_ip(struct ctdb_context *ctdb,
pip->pnn));
state = talloc(ctdb, struct takeover_callback_state);
- CTDB_NO_MEMORY(ctdb, state);
+ if (state == NULL) {
+ ctdb_set_error(ctdb, "Out of memory at %s:%d",
+ __FILE__, __LINE__);
+ free(iface);
+ return -1;
+ }
state->c = talloc_steal(state, c);
state->addr = talloc(state, ctdb_sock_addr);
- CTDB_NO_MEMORY(ctdb, state->addr);
+ if (state->addr == NULL) {
+ ctdb_set_error(ctdb, "Out of memory at %s:%d",
+ __FILE__, __LINE__);
+ free(iface);
+ talloc_free(state);
+ return -1;
+ }
*state->addr = pip->addr;
state->vnn = vnn;