seccomp: permit specifying multiple errnos for a syscall
authorLucas Werkmeister <mail@lucaswerkmeister.de>
Wed, 29 Aug 2018 19:35:38 +0000 (21:35 +0200)
committerLucas Werkmeister <mail@lucaswerkmeister.de>
Fri, 7 Sep 2018 19:44:13 +0000 (21:44 +0200)
commit9d7fe7c65ae26cb59885a95bdcd275b8e3be9554
treed20c5201810215dd1fef31101b81534ecdd72512
parent851ee70a3da1263a8eb9e7f230d2e18462ec2ead
seccomp: permit specifying multiple errnos for a syscall

If more than one errno is specified for a syscall in SystemCallFilter=,
use the last one instead of reporting an error. This is especially
useful when used with system call sets:

    SystemCallFilter=@privileged:EPERM @reboot

This will block any system call requiring super-user capabilities with
EPERM, except for attempts to reboot the system, which will immediately
terminate the process. (@reboot is included in @privileged.)

This also effectively fixes #9939, since specifying different errnos for
“the same syscall” (same pseudo syscall number) is no longer an error.
src/shared/seccomp-util.c