summaryrefslogtreecommitdiffstats
path: root/ipc/ipc_channel_factory.cc
diff options
context:
space:
mode:
authorjochen@chromium.org <jochen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-03-15 13:35:06 +0000
committerjochen@chromium.org <jochen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-03-15 13:35:06 +0000
commitb0df57cf1f90cd46703023be0f6ab8c6175f7771 (patch)
tree7bd956e684159a29e115d56fafd1583a74c645f1 /ipc/ipc_channel_factory.cc
parente387e46fd352bf8baa35c403f9c95905ade0feda (diff)
downloadchromium_src-b0df57cf1f90cd46703023be0f6ab8c6175f7771.zip
chromium_src-b0df57cf1f90cd46703023be0f6ab8c6175f7771.tar.gz
chromium_src-b0df57cf1f90cd46703023be0f6ab8c6175f7771.tar.bz2
Revert of Implement ScopedFD in terms of ScopedGeneric. (https://codereview.chromium.org/191673003/)
Reason for revert: Doesn't correctly link /mnt/data/b/build/slave/Chromium_Linux_Codesearch/build/src/third_party/gold/gold64: warning: hidden symbol 'base::internal::ScopedFDCloseTraits::Free(int)' in obj/base/files/nacl_helper.scoped_file.o is referenced by DSO lib/libipc.so Original issue's description: > Implement ScopedFD in terms of ScopedGeneric. > > Move to a new file base/files/scoped_file.h. I will also add ScopedFILE to here (currently in file_util.h) later. > > I think there is a crash in the old code in content/browser/zygote_host/zygote_host_impl_linux.cc that this patch should fix. The old ScopedFD took the address of something in a vector that is being modified. > > I removed SafeScopedFD from content/common/sandbox_linux/sandbox_linux.cc since base's ScopedFD not CHECKs on close failure (this is a more recent addition). > > BUG= > R=agl@chromium.org, viettrungluu@chromium.org > > Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=257001 > > Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=257179 TBR=viettrungluu@chromium.org,agl@chromium.org,brettw@chromium.org NOTREECHECKS=true NOTRY=true BUG= Review URL: https://codereview.chromium.org/201203002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@257323 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ipc/ipc_channel_factory.cc')
-rw-r--r--ipc/ipc_channel_factory.cc10
1 files changed, 5 insertions, 5 deletions
diff --git a/ipc/ipc_channel_factory.cc b/ipc/ipc_channel_factory.cc
index 244024c..5c24284 100644
--- a/ipc/ipc_channel_factory.cc
+++ b/ipc/ipc_channel_factory.cc
@@ -5,7 +5,6 @@
#include "ipc/ipc_channel_factory.h"
#include "base/file_util.h"
-#include "base/files/scoped_file.h"
#include "base/logging.h"
#include "ipc/unix_domain_socket_util.h"
@@ -52,20 +51,21 @@ void ChannelFactory::OnFileCanReadWithoutBlocking(int fd) {
delegate_->OnListenError();
return;
}
- base::ScopedFD scoped_fd(new_fd);
- if (!scoped_fd.is_valid()) {
+ if (new_fd < 0) {
// The accept() failed, but not in such a way that the factory needs to be
// shut down.
return;
}
+ file_util::ScopedFD scoped_fd(&new_fd);
+
// Verify that the IPC channel peer is running as the same user.
- if (!IsPeerAuthorized(scoped_fd.get()))
+ if (!IsPeerAuthorized(new_fd))
return;
ChannelHandle handle(std::string(),
- base::FileDescriptor(scoped_fd.release(), true));
+ base::FileDescriptor(*scoped_fd.release(), true));
delegate_->OnClientConnected(handle);
}