From 84397618529f920bea45d0bab22ec097766244fc Mon Sep 17 00:00:00 2001 From: Felix Geyer Date: Thu, 30 Jan 2014 21:28:17 +0100 Subject: seccomp: add timerfd_create and timerfd_settime to the whitelist libusb calls timerfd_create() and timerfd_settime() when it's built with timerfd support. Command to reproduce: -device usb-host,hostbus=1,hostaddr=3,id=hostdev0 Log messages: audit(1390730418.924:135): auid=4294967295 uid=121 gid=103 ses=4294967295 pid=5232 comm="qemu-system-x86" sig=31 syscall=283 compat=0 ip=0x7f2b0f4e96a7 code=0x0 audit(1390733100.580:142): auid=4294967295 uid=121 gid=103 ses=4294967295 pid=16909 comm="qemu-system-x86" sig=31 syscall=286 compat=0 ip=0x7f03513a06da code=0x0 Reading a few hundred MB from a USB drive on x86_64 shows this syscall distribution. Therefore the timerfd_settime priority is set to 242. calls syscall --------- ---------------- 5303600 write 2240554 read 2167030 ppoll 2134828 ioctl 704023 timerfd_settime 689105 poll 83122 futex 803 writev 476 rt_sigprocmask 287 recvmsg 178 brk Signed-off-by: Felix Geyer Signed-off-by: Eduardo Otubo --- qemu-seccomp.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/qemu-seccomp.c b/qemu-seccomp.c index caa926ebf2..46554bda4b 100644 --- a/qemu-seccomp.c +++ b/qemu-seccomp.c @@ -143,6 +143,7 @@ static const struct QemuSeccompSyscall seccomp_whitelist[] = { { SCMP_SYS(getsockname), 242 }, { SCMP_SYS(getpeername), 242 }, { SCMP_SYS(accept4), 242 }, + { SCMP_SYS(timerfd_settime), 242 }, { SCMP_SYS(newfstatat), 241 }, { SCMP_SYS(shutdown), 241 }, { SCMP_SYS(getsockopt), 241 }, @@ -225,7 +226,8 @@ static const struct QemuSeccompSyscall seccomp_whitelist[] = { { SCMP_SYS(fchmod), 240 }, { SCMP_SYS(shmget), 240 }, { SCMP_SYS(shmat), 240 }, - { SCMP_SYS(shmdt), 240 } + { SCMP_SYS(shmdt), 240 }, + { SCMP_SYS(timerfd_create), 240 } }; int seccomp_start(void) -- cgit v1.2.3 From e3f9bb011ae24a594310fa4917754945dc832f8f Mon Sep 17 00:00:00 2001 From: Paul Moore Date: Wed, 26 Feb 2014 10:25:01 -0500 Subject: seccomp: add shmctl(), mlock(), and munlock() to the syscall whitelist Additional testing reveals that PulseAudio requires shmctl() and the mlock()/munlock() syscalls on some systems/configurations. As before, on systems that do require these syscalls, the problem can be seen with the following command line: # qemu -monitor stdio -sandbox on \ -device intel-hda -device hda-duplex Signed-off-by: Paul Moore Signed-off-by: Eduardo Otubo --- qemu-seccomp.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/qemu-seccomp.c b/qemu-seccomp.c index 46554bda4b..ea8094d043 100644 --- a/qemu-seccomp.c +++ b/qemu-seccomp.c @@ -227,7 +227,10 @@ static const struct QemuSeccompSyscall seccomp_whitelist[] = { { SCMP_SYS(shmget), 240 }, { SCMP_SYS(shmat), 240 }, { SCMP_SYS(shmdt), 240 }, - { SCMP_SYS(timerfd_create), 240 } + { SCMP_SYS(timerfd_create), 240 }, + { SCMP_SYS(shmctl), 240 }, + { SCMP_SYS(mlock), 240 }, + { SCMP_SYS(munlock), 240 } }; int seccomp_start(void) -- cgit v1.2.3