From: Sage Weil Date: Fri, 28 Sep 2012 13:48:11 +0000 (-0700) Subject: adminsocket: fix sock-fd leak in failure path X-Git-Tag: v0.54~187^2~27 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=7490032008dd68c306d46c1c264fe2afd170c47e;p=ceph.git adminsocket: fix sock-fd leak in failure path CID 728088: Resource leak (RESOURCE_LEAK) At (9): Handle variable "sock_fd" going out of scope leaks the handle. Signed-off-by: Sage Weil --- diff --git a/src/common/admin_socket.cc b/src/common/admin_socket.cc index 63974eba59a..a321dc3c734 100644 --- a/src/common/admin_socket.cc +++ b/src/common/admin_socket.cc @@ -168,6 +168,7 @@ std::string AdminSocket::bind_and_listen(const std::string &sock_path, int *fd) int r = fcntl(sock_fd, F_SETFD, FD_CLOEXEC); if (r < 0) { r = errno; + TEMP_FAILURE_RETRY(::close(sock_fd)); ostringstream oss; oss << "AdminSocket::bind_and_listen: failed to fcntl on socket: " << cpp_strerror(r); return oss.str();