diff options
author | Martin Schwenke <martin@meltin.net> | 2016-08-10 17:31:52 +1000 |
---|---|---|
committer | Stefan Metzmacher <metze@samba.org> | 2016-08-24 11:42:30 +0200 |
commit | c92614bf4e23a1869ebeeee2ae6d0ed938f2a62b (patch) | |
tree | 4627361970c5b364c385f3e10cddc939ce085fe3 /ctdb/tcp | |
parent | d244616bced64dec23fa0cc7d34489583c0aba4e (diff) | |
download | samba-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.c | 13 |
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)); |