Chromium Code Reviews| Index: components/nacl/loader/nonsfi/nonsfi_sandbox.cc |
| diff --git a/components/nacl/loader/nonsfi/nonsfi_sandbox.cc b/components/nacl/loader/nonsfi/nonsfi_sandbox.cc |
| index a58ba840b73991c29485556968f9845b3045d82f..866f1da431ec540f9f532936bb107e56147daa19 100644 |
| --- a/components/nacl/loader/nonsfi/nonsfi_sandbox.cc |
| +++ b/components/nacl/loader/nonsfi/nonsfi_sandbox.cc |
| @@ -124,12 +124,16 @@ ErrorCode RestrictMemoryProtection(SandboxBPF* sb, int argno) { |
| ErrorCode RestrictMmap(SandboxBPF* sb) { |
| const uint32_t denied_flag_mask = ~(MAP_SHARED | MAP_PRIVATE | |
| MAP_ANONYMOUS | MAP_STACK | MAP_FIXED); |
| - // TODO(hamaji): Disallow RWX mmap. |
| + const uint32_t denied_prot_mask = ~(PROT_READ | PROT_WRITE); |
|
Mark Seaborn
2014/04/24 16:49:30
It's not really obvious why you'd want to do this.
hamaji
2014/04/25 01:44:47
I just guessed this would slight improve security.
|
| return sb->Cond(3, ErrorCode::TP_32BIT, |
| ErrorCode::OP_HAS_ANY_BITS, |
| denied_flag_mask, |
| - sb->Trap(sandbox::CrashSIGSYS_Handler, NULL), |
| - RestrictMemoryProtection(sb, 2)); |
| + sb->Trap(sandbox::CrashSIGSYS_Handler, NULL), |
| + sb->Cond(2, ErrorCode::TP_32BIT, |
| + ErrorCode::OP_HAS_ANY_BITS, |
| + denied_prot_mask, |
| + sb->Trap(sandbox::CrashSIGSYS_Handler, NULL), |
| + ErrorCode(ErrorCode::ERR_ALLOWED))); |
| } |
| ErrorCode RestrictSocketpair(SandboxBPF* sb) { |