1. 26 4月, 2014 1 次提交
    • F
      seccomp: add timerfd_create and timerfd_settime to the whitelist · 84397618
      Felix Geyer 提交于
      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: NFelix Geyer <debfx@fobos.de>
      Signed-off-by: NEduardo Otubo <otubo@linux.vnet.ibm.com>
      84397618
  2. 20 1月, 2014 2 次提交
    • P
      seccomp: add some basic shared memory syscalls to the whitelist · 918b94e2
      Paul Moore 提交于
      PulseAudio requires the use of shared memory so add shmget(), shmat(),
      and shmdt() to the syscall whitelist.
      
      Reported-by: xuhan@redhat.com
      Signed-off-by: NPaul Moore <pmoore@redhat.com>
      918b94e2
    • P
      seccomp: add mkdir() and fchmod() to the whitelist · 0c2acb16
      Paul Moore 提交于
      The PulseAudio library attempts to do a mkdir(2) and fchmod(2) on
      "/run/user/<UID>/pulse" which is currently blocked by the syscall
      filter; this patch adds the two missing syscalls to the whitelist.
      You can reproduce this problem with the following command:
      
       # qemu -monitor stdio -device intel-hda -device hda-duplex
      
      If watched under strace the following syscalls are shown:
      
       mkdir("/run/user/0/pulse", 0700)
       fchmod(11, 0700) [NOTE: 11 is the fd for /run/user/0/pulse]
      
      Reported-by: xuhan@redhat.com
      Signed-off-by: NPaul Moore <pmoore@redhat.com>
      0c2acb16
  3. 21 12月, 2013 1 次提交
  4. 03 12月, 2013 1 次提交
  5. 25 9月, 2013 1 次提交
  6. 30 7月, 2013 2 次提交
  7. 27 7月, 2013 2 次提交
  8. 31 5月, 2013 1 次提交
  9. 19 12月, 2012 1 次提交
  10. 30 11月, 2012 1 次提交
  11. 17 8月, 2012 1 次提交
    • E
      Adding qemu-seccomp.[ch] (v8) · 2f668be7
      Eduardo Otubo 提交于
      Signed-off-by: NEduardo Otubo <otubo@linux.vnet.ibm.com>
      Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
      ---
      v1:
       - I added a syscall struct using priority levels as described in the
         libseccomp man page. The priority numbers are based to the frequency
         they appear in a sample strace from a regular qemu guest run under
         libvirt.
      
         Libseccomp generates linear BPF code to filter system calls, those rules
         are read one after another. The priority system places the most common
         rules first in order to reduce the overhead when processing them.
      
      v1 -> v2:
       - Fixed some style issues
       - Removed code from vl.c and created qemu-seccomp.[ch]
       - Now using ARRAY_SIZE macro
       - Added more syscalls without priority/frequency set yet
      
      v2 -> v3:
       - Adding copyright and license information
       - Replacing seccomp_whitelist_count just by ARRAY_SIZE
       - Adding header protection to qemu-seccomp.h
       - Moving QemuSeccompSyscall definition to qemu-seccomp.c
       - Negative return from seccomp_start is fatal now.
       - Adding open() and execve() to the whitelis
      
      v3 -> v4:
       - Tests revealed a bigger set of syscalls.
       - seccomp_start() now has an argument to set the mode according to the
         configure option trap or kill.
      
      v4 -> v5:
       - Tests on x86_64 required a new specific set of system calls.
       - libseccomp release 1.0.0: part of the API have changed in this last
         release, had to adapt to the new function signatures.
      2f668be7