diff options
author | Rajesh Joseph <rjoseph@redhat.com> | 2015-04-16 11:55:53 +0530 |
---|---|---|
committer | Günther Deschner <gd@samba.org> | 2015-04-17 16:49:04 +0200 |
commit | 9b33732a57a919059bf17e9348a60019146e9e1d (patch) | |
tree | 9e9b0cde38abec922422dcc1848021e993cfca7e /ctdb | |
parent | a689cd5d955214fe94f19af9d1b5aec6d44d568a (diff) | |
download | samba-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.c | 15 |
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; |