From: Danny Al-Gaaf Date: Wed, 12 Nov 2014 10:35:57 +0000 (+0100) Subject: net_handler.cc: close socket leak X-Git-Tag: v0.90~25^2~10 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=72c0156e09d48bc760b3c731f0912ee1b45cfb86;p=ceph.git net_handler.cc: close socket leak 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 --- diff --git a/src/msg/async/net_handler.cc b/src/msg/async/net_handler.cc index 1ff73a4510fb..c047c36194b3 100644 --- a/src/msg/async/net_handler.cc +++ b/src/msg/async/net_handler.cc @@ -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) {