]> git.proxmox.com Git - mirror_qemu.git/commitdiff
seccomp: add cacheflush to whitelist
authorAndrew Jones <drjones@redhat.com>
Mon, 2 Nov 2015 22:53:26 +0000 (23:53 +0100)
committerEduardo Otubo <eduardo.otubo@profitbricks.com>
Mon, 16 Nov 2015 08:48:53 +0000 (09:48 +0100)
cacheflush is an arm-specific syscall that qemu built for arm
uses. Add it to the whitelist, but only if we're linking with
a recent enough libseccomp.

Signed-off-by: Andrew Jones <drjones@redhat.com>
qemu-seccomp.c

index 80d034a8d519044a0a6f12cb5304b8ea640b85f0..c831fe83ad50031b96c3a68c9a9c3affcb42318f 100644 (file)
 #include <seccomp.h>
 #include "sysemu/seccomp.h"
 
+#if SCMP_VER_MAJOR >= 3
+  #define HAVE_CACHEFLUSH
+#elif SCMP_VER_MAJOR == 2 && SCMP_VER_MINOR >= 3
+  #define HAVE_CACHEFLUSH
+#elif SCMP_VER_MAJOR == 2 && SCMP_VER_MINOR == 2 && SCMP_VER_MICRO >= 3
+  #define HAVE_CACHEFLUSH
+#endif
+
 struct QemuSeccompSyscall {
     int32_t num;
     uint8_t priority;
@@ -238,7 +246,10 @@ static const struct QemuSeccompSyscall seccomp_whitelist[] = {
     { SCMP_SYS(inotify_init1), 240 },
     { SCMP_SYS(inotify_add_watch), 240 },
     { SCMP_SYS(mbind), 240 },
-    { SCMP_SYS(memfd_create), 240 }
+    { SCMP_SYS(memfd_create), 240 },
+#ifdef HAVE_CACHEFLUSH
+    { SCMP_SYS(cacheflush), 240 },
+#endif
 };
 
 int seccomp_start(void)