1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "content/common/child_process_sandbox_support_impl_linux.h" 6 7 #include "base/pickle.h" 8 #include "base/posix/unix_domain_socket_linux.h" 9 #include "content/common/sandbox_linux/sandbox_linux.h" 10 11 namespace content { 12 MakeSharedMemorySegmentViaIPC(size_t length,bool executable)13int MakeSharedMemorySegmentViaIPC(size_t length, bool executable) { 14 Pickle request; 15 request.WriteInt(LinuxSandbox::METHOD_MAKE_SHARED_MEMORY_SEGMENT); 16 request.WriteUInt32(length); 17 request.WriteBool(executable); 18 uint8_t reply_buf[10]; 19 int result_fd; 20 ssize_t result = UnixDomainSocket::SendRecvMsg(GetSandboxFD(), 21 reply_buf, sizeof(reply_buf), 22 &result_fd, request); 23 if (result == -1) 24 return -1; 25 return result_fd; 26 } 27 28 } // namespace content 29