1. 29 Nov, 2017 3 commits
  2. 28 Nov, 2017 9 commits
  3. 27 Nov, 2017 2 commits
    • Merge pull request #1949 from marcosps/issue_84 · fd3c548d
      Serge Hallyn authored
      Use AX_PTHREAD config script to detect pthread api
    • seccomp: filter syscalls based on arguments · 3ee26d19
      LiFeng authored
      In order to support filtering syscalls based on arguments the seccomp version 2
      specification is extended to the following form:
      
      syscall_name action [index,value,op,valueTwo] [index,value,op]...
      
      where the arguments of the tuple [index,value,valueTwo,op] have the following
      meaning:
      1. index (uint32_t):
         The index of the syscall argument.
      2. value (uint64_t):
         The value for the syscall argument specified by "index".
      3. valueTwo (uint64_t, optional):
         The value for the syscall argument specified by "index". This optional value
         is only valid in conjunction with SCMP_CMP_MASKED_EQ.
      4. op (string):
         The operator for the syscall argument. Valid operators are the constants
         - SCMP_CMP_NE        (!=)
         - SCMP_CMP_LE        (<=)
         - SCMP_CMP_EQ        (==)
         - SCMP_CMP_GE        (>=)
         - SCMP_CMP_GT        (>)
         - SCMP_CMP_MASKED_EQ (&=)
         as defined by libseccomp >= v2.3.2.
         For convenience liblxc also understands the standard operator notation
         indicated in brackets after the libseccomp constants above as an equivalent
         notation.
      Note that it is legal to specify multiple entries for the same syscall.
      
      An example for an extended seccomp version 2 profile is:
      
      2
      blacklist allow
      reject_force_umount  # comment this to allow umount -f;  not recommended
      [all]
      kexec_load errno 1 [0,1,SCMP_CMP_LE][3,1,==][5,1,SCMP_CMP_MASKED_EQ,1]
      open_by_handle_at errno 1
      init_module errno 1
      finit_module errno 1
      delete_module errno 1
      unshare errno 9 [0,0x10000000,SCMP_CMP_EQ]
      unshare errno 2 [0,0x20000000,SCMP_CMP_EQ]
      
      Closes #1564.
      Signed-off-by: 's avatarLiFeng <lifeng68@huawei.com>
      Reviewed-by: 's avatarChristian Brauner <christian.brauner@ubuntu.com>
  4. 26 Nov, 2017 1 commit
  5. 25 Nov, 2017 1 commit
  6. 24 Nov, 2017 2 commits
  7. 23 Nov, 2017 9 commits
  8. 22 Nov, 2017 8 commits
  9. 21 Nov, 2017 2 commits
  10. 20 Nov, 2017 3 commits
    • Merge pull request #1931 from brauner/2017-11-20/fix_state_socket · a848f32a
      Stéphane Graber authored
      commands: fix state socket implementation
    • commands: fix state socket implementation · f6fc1565
      Christian Brauner authored
      Remove dead state clients from state client list. Consider the following
      scenario:
      
      01 start container
      02 issue shutdown request
      03 state_client_fd is added to lxc_handler
      03 container doesn't respond to shutdown request
      04 user aborts shutdown request
      05 lxc_cmd_fd_cleanup() removes state_client_fd from lxc_mainloop
      06 invalid state_client_fd is still recorded in the lxc_handler
      07 user issues lxc_cmd_stop() request via SIGKILL
      08 container reaches STOPPED state and sends message to state_client_fd
      09 state_client_fd number has been reused by lxc_cmd_stop_callback()
      10 invalid data gets dumped to lxc_cmd_stop()
      
      Reproducer:
      Set an invalid shutdown signal to which the init system does not respond with a
      shutdown via lxc.signal.halt e.g. "lxc.signal.halt = SIGUSR1". Then do:
      
      1. start container
          root@conventiont|~
          > lxc-start -n a1
      
      2. try to shutdown container
          root@conventiont|~
          > lxc-stop -n a1
      
      3. abort shutdown
      ^C
      
      4. SIGKILL the container (lxc.signal.stop = SIGKILL)
          root@conventiont|~
          > lxc-stop -n a1 -k
          lxc-stop: a1: commands.c: lxc_cmd_rsp_recv: 165 File too large - Response data for command "stop" is too long: 12641 bytes > 8192
      
      To not let this happen we remove the state_client_fd from the lxc_handler when
      we detect a cleanup event in lxc_cmd_fd_cleanup().
      Signed-off-by: 's avatarChristian Brauner <christian.brauner@ubuntu.com>