OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "components/nacl/loader/nonsfi/nonsfi_sandbox.h" | 5 #include "components/nacl/loader/nonsfi/nonsfi_sandbox.h" |
6 | 6 |
7 #include <errno.h> | 7 #include <errno.h> |
8 #include <fcntl.h> | 8 #include <fcntl.h> |
9 #include <linux/net.h> | 9 #include <linux/net.h> |
10 #include <sys/prctl.h> | 10 #include <sys/prctl.h> |
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
155 case __NR_getgid32: | 155 case __NR_getgid32: |
156 case __NR_getuid32: | 156 case __NR_getuid32: |
157 #endif | 157 #endif |
158 case __NR_getegid: | 158 case __NR_getegid: |
159 case __NR_geteuid: | 159 case __NR_geteuid: |
160 case __NR_getgid: | 160 case __NR_getgid: |
161 case __NR_getuid: | 161 case __NR_getuid: |
162 // tcmalloc calls madvise in TCMalloc_SystemRelease. | 162 // tcmalloc calls madvise in TCMalloc_SystemRelease. |
163 case __NR_madvise: | 163 case __NR_madvise: |
164 // EPERM instead of SIGSYS as glibc tries to open files in /proc. | 164 // EPERM instead of SIGSYS as glibc tries to open files in /proc. |
| 165 // openat via opendir via get_nprocs_conf and open via get_nprocs. |
165 // TODO(hamaji): Remove this when we switch to newlib. | 166 // TODO(hamaji): Remove this when we switch to newlib. |
166 case __NR_open: | 167 case __NR_open: |
| 168 case __NR_openat: |
167 // For RunSandboxSanityChecks(). | 169 // For RunSandboxSanityChecks(). |
168 case __NR_ptrace: | 170 case __NR_ptrace: |
169 // glibc uses this for its pthread implementation. If we return | 171 // glibc uses this for its pthread implementation. If we return |
170 // EPERM for this, glibc will stop using this. | 172 // EPERM for this, glibc will stop using this. |
171 // TODO(hamaji): newlib does not use this. Make this SIGTRAP once | 173 // TODO(hamaji): newlib does not use this. Make this SIGTRAP once |
172 // we have switched to newlib. | 174 // we have switched to newlib. |
173 case __NR_set_robust_list: | 175 case __NR_set_robust_list: |
174 // This is obsolete in ARM EABI, but x86 glibc indirectly calls | 176 // This is obsolete in ARM EABI, but x86 glibc indirectly calls |
175 // this in sysconf. | 177 // this in sysconf. |
176 #if defined(__i386__) || defined(__x86_64__) | 178 #if defined(__i386__) || defined(__x86_64__) |
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
305 scoped_ptr<sandbox::SandboxBPFPolicy>( | 307 scoped_ptr<sandbox::SandboxBPFPolicy>( |
306 new nacl::nonsfi::NaClNonSfiBPFSandboxPolicy())); | 308 new nacl::nonsfi::NaClNonSfiBPFSandboxPolicy())); |
307 if (!sandbox_is_initialized) | 309 if (!sandbox_is_initialized) |
308 return false; | 310 return false; |
309 RunSandboxSanityChecks(); | 311 RunSandboxSanityChecks(); |
310 return true; | 312 return true; |
311 } | 313 } |
312 | 314 |
313 } // namespace nonsfi | 315 } // namespace nonsfi |
314 } // namespace nacl | 316 } // namespace nacl |
OLD | NEW |