crosvm/seccomp/aarch64/9p_device.policy
Matt Delco 4441c01124 seccomp: update/cleanup aarch64 rules
The build-time seccomp compiler for aarch64 complains that it doesn't
recognize open, epoll_wait, recv, mmap2, dup2, poll, mkdir, or stat.

I tried to propose a change to upstream minijail to make it aware of
these syscalls, but the calls are in various forms of deprecation
so upstream is doubting the sanity of the policy files.

I applied the following mapping: open->openat, epoll_wait->epoll_pwait,
recv->recvfrom, mmap2->mmap, dup2->dup3, poll->ppoll, mkdir->mkdirat,
and stat->statx.  In many cases the new syscall was already present so I
just deleted the old one.

BUG=None
TEST=Ran compile_seccomp_policy.py with an unmodified minijail until
it stopped complaining.  I don't have an arm device for runtime testing.
Wrote an app to emulate the execution of the first 400 syscall #s though
the bpf filter and verified that the list that matches the filter is the
same as the policy file.

Change-Id: I599aa549a1712b898eb6b73492872a9676e7215d
Signed-off-by: Matt Delco <delco@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/2036218
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Stephen Barber <smbarber@chromium.org>
2020-02-06 17:35:36 +00:00

26 lines
501 B
Text

# Copyright 2019 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
openat: 1
@include /usr/share/policy/crosvm/common_device.policy
pread64: 1
pwrite64: 1
statx: 1
fstat: 1
ioctl: arg1 == FIOCLEX
getdents64: 1
fdatasync: 1
fsync: 1
mkdirat: 1
renameat: 1
linkat: 1
unlinkat: 1
socket: arg0 == AF_UNIX
utimensat: 1
ftruncate: 1
fchown: arg1 == 0xffffffff && arg2 == 0xffffffff
statfs: 1
newfstatat: 1