Blink roll 25b6bd3a7a131ffe68d809546ad1a20707915cdc:3a503f41ae42e5b79cfcd2ff10e65afde...
[chromium-blink-merge.git] / content / common / child_process_sandbox_support_impl_shm_linux.cc
blob0c634c109a9c66ed77ad865bf8e6fe8713c2f461
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.
5 #include "content/common/child_process_sandbox_support_impl_linux.h"
7 #include "base/pickle.h"
8 #include "base/posix/unix_domain_socket_linux.h"
9 #include "content/common/sandbox_linux/sandbox_linux.h"
11 namespace content {
13 int 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;
28 } // namespace content