ctdb-common: Fix CID 1362728 Unchecked return value from library
authorMartin Schwenke <martin@meltin.net>
Wed, 10 Aug 2016 07:04:45 +0000 (17:04 +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/common/system_linux.c

index bf022e3ada07d9f22b399ea2906dc7e6e12ec01c..a036011faee1ab50d81f78715f4b9182ceaf21f2 100644 (file)
@@ -455,7 +455,7 @@ int ctdb_sys_send_tcp(const ctdb_sock_addr *dest,
  */
 int ctdb_sys_open_capture_socket(const char *iface, void **private_data)
 {
-       int s;
+       int s, ret;
 
        /* Open a socket to capture all traffic */
        s = socket(AF_PACKET, SOCK_RAW, htons(ETH_P_ALL));
@@ -466,7 +466,16 @@ int ctdb_sys_open_capture_socket(const char *iface, void **private_data)
 
        DEBUG(DEBUG_DEBUG, (__location__ " Created RAW SOCKET FD:%d for tcp tickle\n", s));
 
-       set_blocking(s, false);
+       ret = set_blocking(s, false);
+       if (ret != 0) {
+               DEBUG(DEBUG_ERR,
+                     (__location__
+                      " failed to set socket non-blocking (%s)\n",
+                      strerror(errno)));
+               close(s);
+               return -1;
+       }
+
        set_close_on_exec(s);
 
        return s;