summaryrefslogtreecommitdiff
path: root/ctdb/tcp
diff options
context:
space:
mode:
authorMartin Schwenke <martin@meltin.net>2016-08-10 17:31:52 +1000
committerStefan Metzmacher <metze@samba.org>2016-08-24 11:42:30 +0200
commitc92614bf4e23a1869ebeeee2ae6d0ed938f2a62b (patch)
tree4627361970c5b364c385f3e10cddc939ce085fe3 /ctdb/tcp
parentd244616bced64dec23fa0cc7d34489583c0aba4e (diff)
downloadsamba-c92614bf4e23a1869ebeeee2ae6d0ed938f2a62b.tar.gz
ctdb-tcp: Fix CID 1362724 Unchecked return value from library
BUG: https://bugzilla.samba.org/show_bug.cgi?id=12157 Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com> (cherry picked from commit bacf57c0658a220c9da6d2dfdf8dd42b9a491556)
Diffstat (limited to 'ctdb/tcp')
-rw-r--r--ctdb/tcp/tcp_connect.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/ctdb/tcp/tcp_connect.c b/ctdb/tcp/tcp_connect.c
index 91da9e49210..82f2e746192 100644
--- a/ctdb/tcp/tcp_connect.c
+++ b/ctdb/tcp/tcp_connect.c
@@ -243,6 +243,7 @@ static void ctdb_listen_event(struct tevent_context *ev, struct tevent_fd *fde,
int fd, nodeid;
struct ctdb_incoming *in;
int one = 1;
+ int ret;
memset(&addr, 0, sizeof(addr));
len = sizeof(addr);
@@ -261,7 +262,17 @@ static void ctdb_listen_event(struct tevent_context *ev, struct tevent_fd *fde,
in->fd = fd;
in->ctdb = ctdb;
- set_blocking(in->fd, false);
+ ret = set_blocking(in->fd, false);
+ if (ret != 0) {
+ DEBUG(DEBUG_ERR,
+ (__location__
+ " failed to set socket non-blocking (%s)\n",
+ strerror(errno)));
+ close(in->fd);
+ in->fd = -1;
+ return;
+ }
+
set_close_on_exec(in->fd);
DEBUG(DEBUG_DEBUG, (__location__ " Created SOCKET FD:%d to incoming ctdb connection\n", fd));