criu/protobuf
Tycho Andersen 0d8aec0c3a seccomp: add initial support for SECCOMP_MODE_STRICT
Unfortunately, SECCOMP_MODE_FILTER is not currently exposed to userspace,
so we can't checkpoint that. In any case, this is what we need to do for
SECCOMP_MODE_STRICT, so let's do it.

This patch works by first disabling seccomp for any processes who are going
to have seccomp filters restored, then restoring the process (including the
seccomp filters), and finally resuming the seccomp filters before detaching
from the process.

v2 changes:

* update for kernel patch v2
* use protobuf enum for seccomp type
* don't parse /proc/pid/status twice

v3 changes:

* get rid of extra CR_STAGE_SECCOMP_SUSPEND stage
* only suspend seccomp in finalize_restore(), just before the unmap
* restore the (same) seccomp state in threads too; also add a note about
  how this is slightly wrong, and that we should at least check for a
  mismatch

Signed-off-by: Tycho Andersen <tycho.andersen@canonical.com>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-06-24 17:38:32 +03:00
..
google/protobuf crit: add --format hex option 2015-01-19 18:13:55 +04:00
cgroup.proto cg: Use relative paths in cgroup dirs image 2014-08-14 12:27:19 +04:00
core-aarch64.proto protobuf: added description of messages to store the AArch64 CPU state 2014-04-11 15:18:51 +04:00
core-arm.proto protobuf: Move arch core resources to core-$(ARCH).proto 2013-01-23 18:22:47 +04:00
core-ppc64.proto arch/ppc64: Add PowerPC 64 LE support 2015-04-30 09:57:49 +03:00
core-x86.proto protobuf: core-x86: mark gregs with hex field option 2015-01-19 18:13:57 +04:00
core.proto seccomp: add initial support for SECCOMP_MODE_STRICT 2015-06-24 17:38:32 +03:00
cpuinfo.proto cpuinfo: x86 -- Add protobuf entry 2014-10-03 13:26:56 +04:00
creds.proto lsm: add support for c/ring LSM profiles 2015-05-08 15:31:05 +03:00
eventfd.proto protobuf: Convert eventfd data to protobuf engine 2012-07-17 07:24:54 +04:00
eventpoll.proto eventpoll: merge eventpoll tfd into eventpoll image 2014-09-03 20:51:40 +04:00
ext-file.proto files: add ability to set callbacks for files (v7) 2013-12-20 16:07:38 +04:00
fdinfo.proto tun: rename FD_TYPES__TUN to FD_TYPES__TUNF 2014-10-27 21:52:40 +04:00
fh.proto proto: Align members and numbers 2014-02-07 15:40:52 +04:00
fifo.proto protobuf: Use FifoEntry instead of struct fifo_entry 2012-07-17 07:18:40 +04:00
file-lock.proto protobuf: add a new description for saving file-lock 2013-01-17 14:38:11 +04:00
fown.proto protobuf: Use RegFileEntry instead of reg_file_entry structure v3 2012-07-17 07:17:02 +04:00
fs.proto fs: Support umask dump/restore 2013-01-10 12:48:31 +03:00
fsnotify.proto protobuf: add [(criu).hex = true] for masks, flags, etc (v2) 2015-01-27 16:06:59 +03:00
ghost-file.proto files: Support ghost devices 2014-07-03 13:28:56 +04:00
inventory.proto lsm: add support for c/ring LSM profiles 2015-05-08 15:31:05 +03:00
ipc-desc.proto protobuf: Convert IPC entries to PB format v2 2012-07-19 11:31:39 +04:00
ipc-msg.proto protobuf: Convert IPC entries to PB format v2 2012-07-19 11:31:39 +04:00
ipc-sem.proto protobuf: Convert IPC entries to PB format v2 2012-07-19 11:31:39 +04:00
ipc-shm.proto protobuf: Convert IPC entries to PB format v2 2012-07-19 11:31:39 +04:00
ipc-var.proto protobuf: Convert IPC entries to PB format v2 2012-07-19 11:31:39 +04:00
Makefile arch/ppc64: Add PowerPC 64 LE support 2015-04-30 09:57:49 +03:00
mm.proto protobuf: add [(criu).hex = true] for masks, flags, etc (v2) 2015-01-27 16:06:59 +03:00
mnt.proto mnt: add --enable-external-sharing flag 2015-04-10 17:54:12 +03:00
netdev.proto add netns protobuf entry and image, also add conf to net device entry 2015-04-09 18:59:17 +03:00
ns.proto protobuf: Prepare scaffolds for procfs NS entries 2013-05-18 03:37:00 +04:00
opts.proto crit: Print IP addresses in pretty mode 2015-01-29 18:47:30 +03:00
packet-sock.proto protobuf: add [(criu).hex = true] for masks, flags, etc (v2) 2015-01-27 16:06:59 +03:00
pagemap.proto protobuf: add [(criu).hex = true] for masks, flags, etc (v2) 2015-01-27 16:06:59 +03:00
pipe-data.proto pipe: Dump and restore pipe size 2013-01-11 17:45:54 +04:00
pipe.proto protobuf: add [(criu).hex = true] for masks, flags, etc (v2) 2015-01-27 16:06:59 +03:00
pstree.proto protobuf: Convert pstree_entry to PB engine 2012-07-17 07:29:36 +04:00
regfile.proto protobuf: add [(criu).hex = true] for masks, flags, etc (v2) 2015-01-27 16:06:59 +03:00
remap-file-path.proto remap: add a dead pid /proc remap 2014-09-19 17:42:48 +04:00
rlimit.proto cr: Support rlimits 2013-01-10 20:08:38 +04:00
rpc.proto add RPC options for for --enable-fs and --skip_mount 2015-04-27 14:57:27 +03:00
sa.proto protobuf: add [(criu).hex = true] for masks, flags, etc (v2) 2015-01-27 16:06:59 +03:00
siginfo.proto protobuf: add signal_queue_entry and use it in thread_core_entry and task_core_entry 2014-08-19 13:09:43 +04:00
signalfd.proto protobuf: add [(criu).hex = true] for masks, flags, etc (v2) 2015-01-27 16:06:59 +03:00
sk-inet.proto crit: Print IP addresses in pretty mode 2015-01-29 18:47:30 +03:00
sk-netlink.proto protobuf: add [(criu).hex = true] for masks, flags, etc (v2) 2015-01-27 16:06:59 +03:00
sk-opts.proto sk: Rework bound-dev dump/restore according to new API 2012-11-28 20:24:42 +03:00
sk-packet.proto protobuf: Convert sk_packet_entry to PB engine 2012-07-17 08:03:43 +04:00
sk-unix.proto protobuf: add [(criu).hex = true] for masks, flags, etc (v2) 2015-01-27 16:06:59 +03:00
stats.proto proto: Align members and numbers 2014-02-07 15:40:52 +04:00
tcp-stream.proto protobuf: add [(criu).hex = true] for masks, flags, etc (v2) 2015-01-27 16:06:59 +03:00
timer.proto core: Move posix timers on core entry 2014-04-17 12:00:54 +04:00
timerfd.proto protobuf: add [(criu).hex = true] for masks, flags, etc (v2) 2015-01-27 16:06:59 +03:00
tty.proto tty: Implement support of current tty 2015-04-02 20:20:08 +03:00
tun.proto protobuf: add [(criu).hex = true] for masks, flags, etc (v2) 2015-01-27 16:06:59 +03:00
userns.proto userns: define protobuf messages for uid and gid maps 2014-11-07 17:00:25 +04:00
utsns.proto proto: Align members and numbers 2014-02-07 15:40:52 +04:00
vma.proto protobuf: add [(criu).hex = true] for masks, flags, etc (v2) 2015-01-27 16:06:59 +03:00