Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(227)

Side by Side Diff: sandbox/linux/suid/client/setuid_sandbox_client.h

Issue 10807059: Refactor the setuid sandbox client code to its own class. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address reviewer's comments and other minor nits. Created 8 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « sandbox/linux/sandbox_linux.gypi ('k') | sandbox/linux/suid/client/setuid_sandbox_client.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
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 #ifndef SANDBOX_LINUX_SUID_SETUID_SANDBOX_CLIENT_H_
6 #define SANDBOX_LINUX_SUID_SETUID_SANDBOX_CLIENT_H_
7
8 #include "base/basictypes.h"
9 #include "base/environment.h"
10
11 namespace sandbox {
12
13 // Helper class to use the setuid sandbox. This class is to be used both
14 // before launching the setuid helper and after being executed through the
15 // setuid helper.
16 //
17 // A typical use would be:
18 // 1. The browser calls SetupLaunchEnvironment()
19 // 2. The browser launches a renderer through the setuid sandbox.
20 // 3. The renderer requests being chroot-ed through ChrootMe() and
21 // requests other sandboxing status via the status functions.
22 class SetuidSandboxClient {
23 public:
24 // All instantation should go through this factory method.
25 static class SetuidSandboxClient* Create();
26 ~SetuidSandboxClient();
27
28 // Ask the setuid helper over the setuid sandbox IPC channel to chroot() us
29 // to an empty directory.
30 // Will only work if we have been launched through the setuid helper.
31 bool ChrootMe();
32
33 // Did we get launched through an up to date setuid binary ?
34 bool IsSuidSandboxUpToDate() const;
35 // Did we get launched through the setuid helper ?
36 bool IsSuidSandboxChild() const;
37 // Did the setuid helper create a new PID namespace ?
38 bool IsInNewPIDNamespace() const;
39 // Did the setuid helper create a new network namespace ?
40 bool IsInNewNETNamespace() const;
41
42 // Set-up the environment. This should be done prior to launching the setuid
43 // helper.
44 void SetupLaunchEnvironment();
45
46 private:
47 // Holds the environment. Will never be NULL.
48 base::Environment* env_;
49 DISALLOW_IMPLICIT_CONSTRUCTORS(SetuidSandboxClient);
50 };
51
52 } // namespace sandbox
53
54 #endif // SANDBOX_LINUX_SUID_SETUID_SANDBOX_CLIENT_H_
OLDNEW
« no previous file with comments | « sandbox/linux/sandbox_linux.gypi ('k') | sandbox/linux/suid/client/setuid_sandbox_client.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698