diff options
author | Josh Gao <jmgao@google.com> | 2017-06-23 06:16:37 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2017-06-23 06:16:37 +0000 |
commit | 1706fa1be3b62d66f7dce69986d2dda8e414cdd8 (patch) | |
tree | 2ea6202f2ef3522a9d87c80db6f866cc255d6c15 | |
parent | 315220d71ebf64f574859661f5f4c7af11aadd8b (diff) | |
parent | d87e5aa769c7ff22d7301ef4a29db3c04d61c0cc (diff) | |
download | bionic-1706fa1be3b62d66f7dce69986d2dda8e414cdd8.tar.gz |
Whitelist __NR__newselect.
am: d87e5aa769
Change-Id: Ib15584b751ff4dd99060ba272a260b14eba6c1b8
-rw-r--r-- | libc/SECCOMP_WHITELIST.TXT | 3 | ||||
-rw-r--r-- | libc/seccomp/arm_policy.cpp | 128 | ||||
-rw-r--r-- | libc/seccomp/mips_policy.cpp | 114 | ||||
-rw-r--r-- | libc/seccomp/x86_policy.cpp | 84 |
4 files changed, 163 insertions, 166 deletions
diff --git a/libc/SECCOMP_WHITELIST.TXT b/libc/SECCOMP_WHITELIST.TXT index d2ab20e99..4d6897ca3 100644 --- a/libc/SECCOMP_WHITELIST.TXT +++ b/libc/SECCOMP_WHITELIST.TXT @@ -118,3 +118,6 @@ ssize_t pwritev2(int fd, const struct iovec* iov, int iovcnt, off_t offset, int # b/37769298 int dup2(int oldfd, int newfd) arm,x86,mips + +# b/62779795 +int compat_select:_newselect(int n, unsigned long* inp, unsigned long* outp, unsigned long* exp, struct timeval* timeout) arm,x86,mips diff --git a/libc/seccomp/arm_policy.cpp b/libc/seccomp/arm_policy.cpp index a395188e8..b8f62a654 100644 --- a/libc/seccomp/arm_policy.cpp +++ b/libc/seccomp/arm_policy.cpp @@ -5,73 +5,71 @@ #include "seccomp_bpfs.h" const sock_filter arm_filter[] = { -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 0, 0, 130), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 150, 65, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 77, 33, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 45, 17, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 26, 9, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 19, 5, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 0, 0, 128), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 150, 63, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 74, 31, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 41, 15, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 24, 7, 0), BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 10, 3, 0), BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 8, 1, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 7, 122, 121), //restart_syscall|exit|fork|read|write|open|close -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 9, 121, 120), //creat -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 13, 120, 119), //unlink|execve|chdir -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 24, 1, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 22, 118, 117), //lseek|getpid|mount -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 25, 117, 116), //getuid -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 36, 3, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 33, 1, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 27, 114, 113), //ptrace -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 34, 113, 112), //access -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 41, 1, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 39, 111, 110), //sync|kill|rename -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 44, 110, 109), //dup|pipe|times -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 60, 7, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 54, 3, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 51, 1, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 46, 106, 105), //brk -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 53, 105, 104), //acct|umount2 -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 57, 1, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 56, 103, 102), //ioctl|fcntl -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 58, 102, 101), //setpgid -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 66, 3, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 63, 1, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 62, 99, 98), //umask|chroot -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 65, 98, 97), //dup2|getppid -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 74, 1, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 68, 96, 95), //setsid|sigaction -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 76, 95, 94), //sethostname|setrlimit -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 116, 15, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 94, 7, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 88, 3, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 85, 1, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 80, 90, 89), //getrusage|gettimeofday|settimeofday -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 86, 89, 88), //readlink -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 91, 1, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 89, 87, 86), //reboot -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 93, 86, 85), //munmap|truncate -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 103, 3, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 96, 1, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 95, 83, 82), //fchmod -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 98, 82, 81), //getpriority|setpriority -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 114, 1, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 106, 80, 79), //syslog|setitimer|getitimer -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 115, 79, 78), //wait4 -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 131, 7, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 124, 3, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 118, 1, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 117, 75, 74), //sysinfo -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 123, 74, 73), //fsync|sigreturn|clone|setdomainname|uname -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 128, 1, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 126, 72, 71), //adjtimex|mprotect -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 130, 71, 70), //init_module|delete_module -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 138, 3, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 136, 1, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 134, 68, 67), //quotactl|getpgid|fchdir -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 137, 67, 66), //personality -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 143, 1, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 142, 65, 64), //setfsuid|setfsgid|_llseek|getdents -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 149, 64, 63), //flock|msync|readv|writev|getsid|fdatasync +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 7, 121, 120), //restart_syscall|exit|fork|read|write|open|close +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 9, 120, 119), //creat +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 19, 1, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 13, 118, 117), //unlink|execve|chdir +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 22, 117, 116), //lseek|getpid|mount +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 33, 3, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 26, 1, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 25, 114, 113), //getuid +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 27, 113, 112), //ptrace +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 36, 1, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 34, 111, 110), //access +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 39, 110, 109), //sync|kill|rename +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 57, 7, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 51, 3, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 45, 1, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 44, 106, 105), //dup|pipe|times +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 46, 105, 104), //brk +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 54, 1, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 53, 103, 102), //acct|umount2 +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 56, 102, 101), //ioctl|fcntl +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 63, 3, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 60, 1, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 58, 99, 98), //setpgid +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 62, 98, 97), //umask|chroot +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 66, 1, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 65, 96, 95), //dup2|getppid +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 68, 95, 94), //setsid|sigaction +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 114, 15, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 91, 7, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 85, 3, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 77, 1, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 76, 90, 89), //sethostname|setrlimit +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 80, 89, 88), //getrusage|gettimeofday|settimeofday +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 88, 1, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 86, 87, 86), //readlink +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 89, 86, 85), //reboot +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 96, 3, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 94, 1, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 93, 83, 82), //munmap|truncate +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 95, 82, 81), //fchmod +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 103, 1, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 98, 80, 79), //getpriority|setpriority +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 106, 79, 78), //syslog|setitimer|getitimer +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 128, 7, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 118, 3, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 116, 1, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 115, 75, 74), //wait4 +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 117, 74, 73), //sysinfo +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 124, 1, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 123, 72, 71), //fsync|sigreturn|clone|setdomainname|uname +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 126, 71, 70), //adjtimex|mprotect +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 136, 3, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 131, 1, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 130, 68, 67), //init_module|delete_module +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 134, 67, 66), //quotactl|getpgid|fchdir +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 138, 1, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 137, 65, 64), //personality +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 149, 64, 63), //setfsuid|setfsgid|_llseek|getdents|_newselect|flock|msync|readv|writev|getsid|fdatasync BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 290, 31, 0), BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 219, 15, 0), BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 190, 7, 0), diff --git a/libc/seccomp/mips_policy.cpp b/libc/seccomp/mips_policy.cpp index 12fb1a9ac..e9d0fa34a 100644 --- a/libc/seccomp/mips_policy.cpp +++ b/libc/seccomp/mips_policy.cpp @@ -5,74 +5,72 @@ #include "seccomp_bpfs.h" const sock_filter mips_filter[] = { -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4001, 0, 114), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4136, 57, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4066, 29, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4041, 15, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4001, 0, 112), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4131, 55, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4063, 27, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4036, 13, 0), BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4023, 7, 0), BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4010, 3, 0), BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4008, 1, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4007, 107, 106), //exit|fork|read|write|open|close -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4009, 106, 105), //creat +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4007, 105, 104), //exit|fork|read|write|open|close +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4009, 104, 103), //creat BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4019, 1, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4013, 104, 103), //unlink|execve|chdir -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4022, 103, 102), //lseek|getpid|mount +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4013, 102, 101), //unlink|execve|chdir +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4022, 101, 100), //lseek|getpid|mount BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4033, 3, 0), BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4026, 1, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4025, 100, 99), //setuid|getuid -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4027, 99, 98), //ptrace -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4036, 1, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4034, 97, 96), //access -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4039, 96, 95), //sync|kill|rename -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4057, 7, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4049, 3, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4045, 1, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4044, 92, 91), //dup|pipe|times -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4048, 91, 90), //brk|setgid|getgid -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4054, 1, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4053, 89, 88), //geteuid|getegid|acct|umount2 -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4056, 88, 87), //ioctl|fcntl -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4063, 3, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4060, 1, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4058, 85, 84), //setpgid -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4062, 84, 83), //umask|chroot -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4065, 83, 82), //dup2|getppid -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4103, 13, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4088, 7, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4074, 3, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4070, 1, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4068, 78, 77), //setsid|sigaction -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4072, 77, 76), //setreuid|setregid -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4085, 1, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4082, 75, 74), //sethostname|setrlimit|getrlimit|getrusage|gettimeofday|settimeofday|getgroups|setgroups -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4086, 74, 73), //readlink -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4094, 3, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4090, 1, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4089, 71, 70), //reboot -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4093, 70, 69), //mmap|munmap|truncate -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4098, 69, 68), //fchmod|fchown|getpriority|setpriority -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4124, 7, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4116, 3, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4114, 1, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4106, 65, 64), //syslog|setitimer|getitimer -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4115, 64, 63), //wait4 -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4118, 1, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4117, 62, 61), //sysinfo -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4123, 61, 60), //fsync|sigreturn|clone|setdomainname|uname -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4131, 3, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4128, 1, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4126, 58, 57), //adjtimex|mprotect -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4130, 57, 56), //init_module|delete_module -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4134, 56, 55), //quotactl|getpgid|fchdir +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4025, 98, 97), //setuid|getuid +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4027, 97, 96), //ptrace +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4034, 96, 95), //access +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4054, 7, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4045, 3, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4041, 1, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4039, 92, 91), //sync|kill|rename +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4044, 91, 90), //dup|pipe|times +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4049, 1, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4048, 89, 88), //brk|setgid|getgid +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4053, 88, 87), //geteuid|getegid|acct|umount2 +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4060, 3, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4057, 1, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4056, 85, 84), //ioctl|fcntl +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4058, 84, 83), //setpgid +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4062, 83, 82), //umask|chroot +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4094, 13, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4085, 7, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4070, 3, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4066, 1, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4065, 78, 77), //dup2|getppid +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4068, 77, 76), //setsid|sigaction +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4074, 1, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4072, 75, 74), //setreuid|setregid +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4082, 74, 73), //sethostname|setrlimit|getrlimit|getrusage|gettimeofday|settimeofday|getgroups|setgroups +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4090, 3, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4088, 1, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4086, 71, 70), //readlink +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4089, 70, 69), //reboot +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4093, 69, 68), //mmap|munmap|truncate +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4118, 7, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4114, 3, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4103, 1, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4098, 65, 64), //fchmod|fchown|getpriority|setpriority +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4106, 64, 63), //syslog|setitimer|getitimer +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4116, 1, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4115, 62, 61), //wait4 +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4117, 61, 60), //sysinfo +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4128, 3, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4124, 1, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4123, 58, 57), //fsync|sigreturn|clone|setdomainname|uname +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4126, 57, 56), //adjtimex|mprotect +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4130, 56, 55), //init_module|delete_module BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4246, 27, 0), BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4179, 13, 0), BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4154, 7, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4143, 3, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4138, 1, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4137, 50, 49), //personality -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4142, 49, 48), //setfsuid|setfsgid|_llseek|getdents +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4138, 3, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4136, 1, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4134, 50, 49), //quotactl|getpgid|fchdir +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4137, 49, 48), //personality BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4151, 1, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4148, 47, 46), //flock|msync|readv|writev|cacheflush +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4148, 47, 46), //setfsuid|setfsgid|_llseek|getdents|_newselect|flock|msync|readv|writev|cacheflush BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4153, 46, 45), //getsid|fdatasync BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4176, 3, 0), BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 4169, 1, 0), diff --git a/libc/seccomp/x86_policy.cpp b/libc/seccomp/x86_policy.cpp index 3247e45de..d27696ef2 100644 --- a/libc/seccomp/x86_policy.cpp +++ b/libc/seccomp/x86_policy.cpp @@ -5,80 +5,78 @@ #include "seccomp_bpfs.h" const sock_filter x86_filter[] = { -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 0, 0, 116), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 0, 0, 114), BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 131, 57, 0), BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 66, 29, 0), BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 41, 15, 0), BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 24, 7, 0), BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 10, 3, 0), BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 8, 1, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 7, 109, 108), //restart_syscall|exit|fork|read|write|open|close -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 9, 108, 107), //creat +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 7, 107, 106), //restart_syscall|exit|fork|read|write|open|close +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 9, 106, 105), //creat BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 19, 1, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 13, 106, 105), //unlink|execve|chdir -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 22, 105, 104), //lseek|getpid|mount +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 13, 104, 103), //unlink|execve|chdir +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 22, 103, 102), //lseek|getpid|mount BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 33, 3, 0), BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 26, 1, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 25, 102, 101), //getuid -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 27, 101, 100), //ptrace +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 25, 100, 99), //getuid +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 27, 99, 98), //ptrace BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 36, 1, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 34, 99, 98), //access -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 39, 98, 97), //sync|kill|rename +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 34, 97, 96), //access +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 39, 96, 95), //sync|kill|rename BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 57, 7, 0), BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 51, 3, 0), BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 45, 1, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 44, 94, 93), //dup|pipe|times -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 46, 93, 92), //brk +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 44, 92, 91), //dup|pipe|times +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 46, 91, 90), //brk BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 54, 1, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 53, 91, 90), //acct|umount2 -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 56, 90, 89), //ioctl|fcntl +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 53, 89, 88), //acct|umount2 +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 56, 88, 87), //ioctl|fcntl BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 63, 3, 0), BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 60, 1, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 58, 87, 86), //setpgid -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 62, 86, 85), //umask|chroot -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 65, 85, 84), //dup2|getppid +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 58, 85, 84), //setpgid +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 62, 84, 83), //umask|chroot +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 65, 83, 82), //dup2|getppid BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 96, 13, 0), BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 88, 7, 0), BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 77, 3, 0), BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 74, 1, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 68, 80, 79), //setsid|sigaction -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 76, 79, 78), //sethostname|setrlimit +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 68, 78, 77), //setsid|sigaction +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 76, 77, 76), //sethostname|setrlimit BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 85, 1, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 80, 77, 76), //getrusage|gettimeofday|settimeofday -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 86, 76, 75), //readlink +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 80, 75, 74), //getrusage|gettimeofday|settimeofday +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 86, 74, 73), //readlink BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 94, 3, 0), BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 90, 1, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 89, 73, 72), //reboot -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 93, 72, 71), //mmap|munmap|truncate -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 95, 71, 70), //fchmod +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 89, 71, 70), //reboot +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 93, 70, 69), //mmap|munmap|truncate +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 95, 69, 68), //fchmod BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 118, 7, 0), BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 114, 3, 0), BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 102, 1, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 98, 67, 66), //getpriority|setpriority -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 106, 66, 65), //socketcall|syslog|setitimer|getitimer +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 98, 65, 64), //getpriority|setpriority +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 106, 64, 63), //socketcall|syslog|setitimer|getitimer BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 116, 1, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 115, 64, 63), //wait4 -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 117, 63, 62), //sysinfo +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 115, 62, 61), //wait4 +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 117, 61, 60), //sysinfo BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 128, 3, 0), BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 124, 1, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 123, 60, 59), //fsync|sigreturn|clone|setdomainname|uname -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 126, 59, 58), //adjtimex|mprotect -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 130, 58, 57), //init_module|delete_module -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 272, 29, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 190, 15, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 150, 7, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 123, 58, 57), //fsync|sigreturn|clone|setdomainname|uname +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 126, 57, 56), //adjtimex|mprotect +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 130, 56, 55), //init_module|delete_module +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 272, 27, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 190, 13, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 168, 7, 0), BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 138, 3, 0), BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 136, 1, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 134, 52, 51), //quotactl|getpgid|fchdir -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 137, 51, 50), //personality -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 143, 1, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 142, 49, 48), //setfsuid|setfsgid|_llseek|getdents -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 149, 48, 47), //flock|msync|readv|writev|getsid|fdatasync -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 172, 3, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 168, 1, 0), -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 164, 45, 44), //mlock|munlock|mlockall|munlockall|sched_setparam|sched_getparam|sched_setscheduler|sched_getscheduler|sched_yield|sched_get_priority_max|sched_get_priority_min|sched_rr_get_interval|nanosleep|mremap -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 169, 44, 43), //poll -BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 183, 1, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 134, 50, 49), //quotactl|getpgid|fchdir +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 137, 49, 48), //personality +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 150, 1, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 149, 47, 46), //setfsuid|setfsgid|_llseek|getdents|_newselect|flock|msync|readv|writev|getsid|fdatasync +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 164, 46, 45), //mlock|munlock|mlockall|munlockall|sched_setparam|sched_getparam|sched_setscheduler|sched_getscheduler|sched_yield|sched_get_priority_max|sched_get_priority_min|sched_rr_get_interval|nanosleep|mremap +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 183, 3, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 172, 1, 0), +BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 169, 43, 42), //poll BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 182, 42, 41), //prctl|rt_sigreturn|rt_sigaction|rt_sigprocmask|rt_sigpending|rt_sigtimedwait|rt_sigqueueinfo|rt_sigsuspend|pread64|pwrite64 BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 188, 41, 40), //getcwd|capget|capset|sigaltstack|sendfile BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 224, 7, 0), |