From: Sage Weil Date: Mon, 14 Mar 2016 16:50:33 +0000 (-0400) Subject: log: do not pass negative fd to fchown X-Git-Tag: v10.1.0~89^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=9ed77c82d2b1715a94e03214604575247fe56366;p=ceph.git log: do not pass negative fd to fchown >>> CID 1355574: Error handling issues (NEGATIVE_RETURNS) >>> "this->m_fd" is passed to a parameter that cannot be negative. Signed-off-by: Sage Weil --- diff --git a/src/log/Log.cc b/src/log/Log.cc index bf46e20c7cf6..29e0529e8999 100644 --- a/src/log/Log.cc +++ b/src/log/Log.cc @@ -140,7 +140,7 @@ void Log::reopen_log_file() VOID_TEMP_FAILURE_RETRY(::close(m_fd)); if (m_log_file.length()) { m_fd = ::open(m_log_file.c_str(), O_CREAT|O_WRONLY|O_APPEND, 0644); - if (m_uid || m_gid) { + if (m_fd >= 0 && (m_uid || m_gid)) { int r = ::fchown(m_fd, m_uid, m_gid); if (r < 0) { r = -errno;