#ifdef UNSAFE_BUFFERS_BUILD
#pragma allow_unsafe_buffers
#endif
#include "content/browser/sandbox_ipc_linux.h"
#include <fcntl.h>
#include <stddef.h>
#include <stdint.h>
#include <string.h>
#include <sys/poll.h>
#include <sys/socket.h>
#include <sys/stat.h>
#include "base/command_line.h"
#include "base/files/scoped_file.h"
#include "base/linux_util.h"
#include "base/logging.h"
#include "base/memory/platform_shared_memory_region.h"
#include "base/posix/eintr_wrapper.h"
#include "base/posix/unix_domain_socket.h"
#include "base/process/launch.h"
#include "base/strings/string_number_conversions.h"
#include "content/public/common/content_switches.h"
#include "sandbox/linux/services/libc_interceptor.h"
#include "sandbox/policy/linux/sandbox_linux.h"
namespace content {
const size_t kMaxSandboxIPCMessagePayloadSize = …;
SandboxIPCHandler::SandboxIPCHandler(int lifeline_fd, int browser_socket)
: … { … }
void SandboxIPCHandler::Run() { … }
void SandboxIPCHandler::HandleRequestFromChild(int fd) { … }
void SandboxIPCHandler::HandleMakeSharedMemorySegment(
int fd,
base::PickleIterator iter,
const std::vector<base::ScopedFD>& fds) { … }
void SandboxIPCHandler::SendRendererReply(
const std::vector<base::ScopedFD>& fds,
const base::Pickle& reply,
int reply_fd) { … }
SandboxIPCHandler::~SandboxIPCHandler() { … }
}