]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
net_handler.cc: close socket leak
authorDanny Al-Gaaf <danny.al-gaaf@bisect.de>
Wed, 12 Nov 2014 10:35:57 +0000 (11:35 +0100)
committerDanny Al-Gaaf <danny.al-gaaf@bisect.de>
Thu, 13 Nov 2014 22:39:09 +0000 (23:39 +0100)
Close socket if set_nonblock() fails before return.

Fix for:

CID 1249633 (#1 of 1): Resource leak (RESOURCE_LEAK)
7. leaked_handle: Handle variable s going out of scope leaks the handle.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
src/msg/async/net_handler.cc

index 1ff73a4510fb45197dbb2cf241e30aaae8839a07..c047c36194b38cbacd2d0cf80f0c4f86c074813b 100644 (file)
@@ -110,8 +110,10 @@ int NetHandler::generic_connect(const entity_addr_t& addr, bool nonblock)
 
   if (nonblock) {
     ret = set_nonblock(s);
-    if (ret < 0)
+    if (ret < 0) {
+      close(s);
       return ret;
+    }
   }
   ret = ::connect(s, (sockaddr*)&addr.addr, addr.addr_size());
   if (ret < 0) {