ctdb-client: Fix CID 1362725 Unchecked return value from library
authorMartin Schwenke <martin@meltin.net>
Wed, 10 Aug 2016 07:18:55 +0000 (17:18 +1000)
committerMartin Schwenke <martins@samba.org>
Wed, 17 Aug 2016 21:00:25 +0000 (23:00 +0200)
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>
ctdb/client/ctdb_client.c

index bad38b682a3e0b6016381b66aa951057f8c679f5..c67eb2c1de16a8b2f738baa174b6b8bc592f669a 100644 (file)
@@ -276,6 +276,7 @@ done:
 int ctdb_socket_connect(struct ctdb_context *ctdb)
 {
        struct sockaddr_un addr;
+       int ret;
 
        memset(&addr, 0, sizeof(addr));
        addr.sun_family = AF_UNIX;
@@ -294,7 +295,17 @@ int ctdb_socket_connect(struct ctdb_context *ctdb)
                return -1;
        }
 
-       set_blocking(ctdb->daemon.sd, false);
+       ret = set_blocking(ctdb->daemon.sd, false);
+       if (ret != 0) {
+               DEBUG(DEBUG_ERR,
+                     (__location__
+                      " failed to set socket non-blocking (%s)\n",
+                      strerror(errno)));
+               close(ctdb->daemon.sd);
+               ctdb->daemon.sd = -1;
+               return -1;
+       }
+
        set_close_on_exec(ctdb->daemon.sd);
 
        ctdb->daemon.queue = ctdb_queue_setup(ctdb, ctdb, ctdb->daemon.sd,