Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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 "sandbox/linux/seccomp-bpf-helpers/syscall_sets.h" | 5 #include "sandbox/linux/seccomp-bpf-helpers/syscall_sets.h" |
| 6 | 6 |
| 7 #include "build/build_config.h" | 7 #include "build/build_config.h" |
| 8 #include "sandbox/linux/system_headers/linux_syscalls.h" | 8 #include "sandbox/linux/system_headers/linux_syscalls.h" |
| 9 | 9 |
| 10 namespace sandbox { | 10 namespace sandbox { |
| (...skipping 396 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 407 return false; | 407 return false; |
| 408 } | 408 } |
| 409 } | 409 } |
| 410 | 410 |
| 411 bool SyscallSets::IsAllowedEpoll(int sysno) { | 411 bool SyscallSets::IsAllowedEpoll(int sysno) { |
| 412 switch (sysno) { | 412 switch (sysno) { |
| 413 #if !defined(__aarch64__) | 413 #if !defined(__aarch64__) |
| 414 case __NR_epoll_create: | 414 case __NR_epoll_create: |
| 415 case __NR_epoll_wait: | 415 case __NR_epoll_wait: |
| 416 #endif | 416 #endif |
| 417 case __NR_epoll_pwait: | |
|
jln (very slow on Chromium)
2016/01/27 00:19:17
Why does ARM64 influence this?
Riku Voipio
2016/01/27 15:37:27
The glibc function epoll_wait() will call epoll_pw
| |
| 417 case __NR_epoll_create1: | 418 case __NR_epoll_create1: |
| 418 case __NR_epoll_ctl: | 419 case __NR_epoll_ctl: |
| 419 return true; | 420 return true; |
| 420 default: | 421 default: |
| 421 #if defined(__x86_64__) | 422 #if defined(__x86_64__) |
| 422 case __NR_epoll_ctl_old: | 423 case __NR_epoll_ctl_old: |
| 423 #endif | 424 #endif |
| 424 case __NR_epoll_pwait: | |
| 425 #if defined(__x86_64__) | 425 #if defined(__x86_64__) |
| 426 case __NR_epoll_wait_old: | 426 case __NR_epoll_wait_old: |
| 427 #endif | 427 #endif |
| 428 return false; | 428 return false; |
| 429 } | 429 } |
| 430 } | 430 } |
| 431 | 431 |
| 432 bool SyscallSets::IsAllowedGetOrModifySocket(int sysno) { | 432 bool SyscallSets::IsAllowedGetOrModifySocket(int sysno) { |
| 433 switch (sysno) { | 433 switch (sysno) { |
| 434 #if !defined(__aarch64__) | 434 #if !defined(__aarch64__) |
| (...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 599 default: | 599 default: |
| 600 return false; | 600 return false; |
| 601 } | 601 } |
| 602 } | 602 } |
| 603 | 603 |
| 604 bool SyscallSets::IsAllowedBasicScheduler(int sysno) { | 604 bool SyscallSets::IsAllowedBasicScheduler(int sysno) { |
| 605 switch (sysno) { | 605 switch (sysno) { |
| 606 case __NR_sched_yield: | 606 case __NR_sched_yield: |
| 607 #if !defined(__aarch64__) | 607 #if !defined(__aarch64__) |
| 608 case __NR_pause: | 608 case __NR_pause: |
| 609 #else | |
| 610 case __NR_getrlimit: | |
|
jln (very slow on Chromium)
2016/01/27 00:19:17
getrlimit is already somewhere else in this file.
Riku Voipio
2016/01/27 15:37:27
Thanks, this was the part of my patches I was most
Robert Sesek
2016/01/27 16:52:31
An alternative if we wanted to keep restricting ge
| |
| 609 #endif | 611 #endif |
| 610 case __NR_nanosleep: | 612 case __NR_nanosleep: |
| 611 return true; | 613 return true; |
| 612 case __NR_getpriority: | 614 case __NR_getpriority: |
| 613 #if defined(__i386__) || defined(__arm__) || defined(__mips__) | 615 #if defined(__i386__) || defined(__arm__) || defined(__mips__) |
| 614 case __NR_nice: | 616 case __NR_nice: |
| 615 #endif | 617 #endif |
| 616 case __NR_setpriority: | 618 case __NR_setpriority: |
| 617 default: | 619 default: |
| 618 return false; | 620 return false; |
| (...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 706 case __NR_mq_unlink: | 708 case __NR_mq_unlink: |
| 707 return true; | 709 return true; |
| 708 default: | 710 default: |
| 709 return false; | 711 return false; |
| 710 } | 712 } |
| 711 } | 713 } |
| 712 | 714 |
| 713 bool SyscallSets::IsGlobalProcessEnvironment(int sysno) { | 715 bool SyscallSets::IsGlobalProcessEnvironment(int sysno) { |
| 714 switch (sysno) { | 716 switch (sysno) { |
| 715 case __NR_acct: // Privileged. | 717 case __NR_acct: // Privileged. |
| 716 #if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \ | 718 #if defined(__i386__) || defined(__x86_64__) || defined(__mips__) |
| 717 defined(__aarch64__) | |
| 718 case __NR_getrlimit: | 719 case __NR_getrlimit: |
| 719 #endif | 720 #endif |
| 720 #if defined(__i386__) || defined(__arm__) | 721 #if defined(__i386__) || defined(__arm__) |
| 721 case __NR_ugetrlimit: | 722 case __NR_ugetrlimit: |
| 722 #endif | 723 #endif |
| 723 #if defined(__i386__) || defined(__mips__) | 724 #if defined(__i386__) || defined(__mips__) |
| 724 case __NR_ulimit: | 725 case __NR_ulimit: |
| 725 #endif | 726 #endif |
| 726 case __NR_getrusage: | 727 case __NR_getrusage: |
| 727 case __NR_personality: // Can change its personality as well. | 728 case __NR_personality: // Can change its personality as well. |
| (...skipping 323 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1051 switch (sysno) { | 1052 switch (sysno) { |
| 1052 case __NR_sysmips: | 1053 case __NR_sysmips: |
| 1053 case __NR_unused150: | 1054 case __NR_unused150: |
| 1054 return true; | 1055 return true; |
| 1055 default: | 1056 default: |
| 1056 return false; | 1057 return false; |
| 1057 } | 1058 } |
| 1058 } | 1059 } |
| 1059 #endif // defined(__mips__) | 1060 #endif // defined(__mips__) |
| 1060 } // namespace sandbox. | 1061 } // namespace sandbox. |
| OLD | NEW |