]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
msg/Accepter: check setsockopt return value
authorSage Weil <sage@inktank.com>
Fri, 24 Aug 2012 23:45:29 +0000 (16:45 -0700)
committerSage Weil <sage@inktank.com>
Fri, 31 Aug 2012 20:11:34 +0000 (13:11 -0700)
CCID 716856: Other violation (CHECKED_RETURN)
At (7): Calling function "setsockopt(this->listen_sd, 1, 2, &on, 4U)" without checking return value. This library function may fail and return an error code.

Signed-off-by: Sage Weil <sage@inktank.com>
src/msg/Accepter.cc

index 785ddab1e1e648fa14b252d6816dcd4d6434a72d..17f95760abe5199bd5f5e8b034158cc37e37740a 100644 (file)
@@ -78,7 +78,12 @@ int Accepter::bind(entity_addr_t &bind_addr, uint64_t _nonce, int avoid_port1, i
 
     // reuse addr+port when possible
     int on = 1;
-    ::setsockopt(listen_sd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on));
+    rc = ::setsockopt(listen_sd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on));
+    if (rc < 0) {
+      ldout(msgr->cct,0) << "accepter.bind unable to setsockopt: "
+                        << cpp_strerror(errno) << dendl;
+      return -errno;
+    }
 
     rc = ::bind(listen_sd, (struct sockaddr *) &listen_addr.ss_addr(), listen_addr.addr_size());
     if (rc < 0) {