From ce451c7cc670dad3066ee11c69245d841662844e Mon Sep 17 00:00:00 2001 From: Martin Schwenke Date: Wed, 10 Aug 2016 17:12:21 +1000 Subject: [PATCH] ctdb-tcp: Fix CID 1362727 Unchecked return value from library BUG: https://bugzilla.samba.org/show_bug.cgi?id=12157 Signed-off-by: Martin Schwenke Reviewed-by: Amitay Isaacs --- ctdb/tcp/tcp_connect.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/ctdb/tcp/tcp_connect.c b/ctdb/tcp/tcp_connect.c index bd11c8065f7..2aad8c20f00 100644 --- a/ctdb/tcp/tcp_connect.c +++ b/ctdb/tcp/tcp_connect.c @@ -139,6 +139,7 @@ void ctdb_tcp_node_connect(struct tevent_context *ev, struct tevent_timer *te, int sockin_size; int sockout_size; ctdb_sock_addr sock_out; + int ret; ctdb_tcp_stop_connection(node); @@ -149,7 +150,18 @@ void ctdb_tcp_node_connect(struct tevent_context *ev, struct tevent_timer *te, DEBUG(DEBUG_ERR, (__location__ " Failed to create socket\n")); return; } - set_blocking(tnode->fd, false); + + ret = set_blocking(tnode->fd, false); + if (ret != 0) { + DEBUG(DEBUG_ERR, + (__location__ + " failed to set socket non-blocking (%s)\n", + strerror(errno))); + close(tnode->fd); + tnode->fd = -1; + return; + } + set_close_on_exec(tnode->fd); DEBUG(DEBUG_DEBUG, (__location__ " Created TCP SOCKET FD:%d\n", tnode->fd)); -- 2.34.1