summaryrefslogtreecommitdiff
path: root/ctdb/tcp
diff options
context:
space:
mode:
authorSumit Bose <sbose@redhat.com>2011-08-10 17:53:56 +0200
committerAmitay Isaacs <amitay@gmail.com>2013-07-11 15:16:55 +1000
commit157f1cfefd898aa7fb3dc67796565e4d5ad3d37c (patch)
tree69c2e111284d2850afd15b495ed9c2c403d90509 /ctdb/tcp
parentd039f799ac426c903289800edc8febabe5bec49d (diff)
downloadsamba-157f1cfefd898aa7fb3dc67796565e4d5ad3d37c.tar.gz
Fixes for various issues found by Coverity
Signed-off-by: Amitay Isaacs <amitay@gmail.com> (This used to be ctdb commit 05bfdbbd0d4abdfbcf28e3930086723508b35952)
Diffstat (limited to 'ctdb/tcp')
-rw-r--r--ctdb/tcp/tcp_connect.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/ctdb/tcp/tcp_connect.c b/ctdb/tcp/tcp_connect.c
index e8cae58bd6f..383d72641b2 100644
--- a/ctdb/tcp/tcp_connect.c
+++ b/ctdb/tcp/tcp_connect.c
@@ -154,6 +154,10 @@ void ctdb_tcp_node_connect(struct event_context *ev, struct timed_event *te,
}
tnode->fd = socket(sock_out.sa.sa_family, SOCK_STREAM, IPPROTO_TCP);
+ if (tnode->fd == -1) {
+ DEBUG(DEBUG_ERR, (__location__ "Failed to create socket\n"));
+ return;
+ }
set_nonblocking(tnode->fd);
set_close_on_exec(tnode->fd);
@@ -196,7 +200,12 @@ void ctdb_tcp_node_connect(struct event_context *ev, struct timed_event *te,
sock_in.ip.sin_len = sockin_size;
sock_out.ip.sin_len = sockout_size;
#endif
- bind(tnode->fd, (struct sockaddr *)&sock_in, sockin_size);
+ if (bind(tnode->fd, (struct sockaddr *)&sock_in, sockin_size) == -1) {
+ DEBUG(DEBUG_ERR, (__location__ "Failed to bind socket %s(%d)\n",
+ strerror(errno), errno));
+ close(tnode->fd);
+ return;
+ }
if (connect(tnode->fd, (struct sockaddr *)&sock_out, sockout_size) != 0 &&
errno != EINPROGRESS) {