mirror of
https://github.com/checkpoint-restore/criu.git
synced 2026-07-28 20:42:49 +00:00
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>
105 lines
1.3 KiB
Makefile
105 lines
1.3 KiB
Makefile
define TCP_REPAIR_TEST
|
|
|
|
#include <netinet/tcp.h>
|
|
|
|
int main(void)
|
|
{
|
|
struct tcp_repair_opt opts;
|
|
opts.opt_code = TCP_NO_QUEUE;
|
|
opts.opt_val = 0;
|
|
|
|
return opts.opt_val;
|
|
}
|
|
endef
|
|
|
|
define PRLIMIT_TEST
|
|
|
|
#include <stdlib.h>
|
|
#include <sys/types.h>
|
|
#include <sys/time.h>
|
|
#include <sys/resource.h>
|
|
|
|
int main(void)
|
|
{
|
|
struct rlimit limit = {
|
|
.rlim_cur = RLIM_INFINITY,
|
|
.rlim_max = RLIM_INFINITY,
|
|
};
|
|
|
|
return prlimit(getpid(), RLIMIT_CPU, &limit, NULL);
|
|
}
|
|
endef
|
|
|
|
define LIBBSD_DEV_TEST
|
|
#include <bsd/string.h>
|
|
|
|
int main(void)
|
|
{
|
|
return 0;
|
|
}
|
|
endef
|
|
|
|
define STRLCPY_TEST
|
|
|
|
#include <string.h>
|
|
|
|
#ifdef CONFIG_HAS_LIBBSD
|
|
# include <bsd/string.h>
|
|
#endif
|
|
|
|
int main(void)
|
|
{
|
|
return strlcpy(NULL, NULL, 0);
|
|
}
|
|
endef
|
|
|
|
define STRLCAT_TEST
|
|
|
|
#include <string.h>
|
|
|
|
#ifdef CONFIG_HAS_LIBBSD
|
|
# include <bsd/string.h>
|
|
#endif
|
|
|
|
int main(void)
|
|
{
|
|
return strlcat(NULL, NULL, 0);
|
|
}
|
|
endef
|
|
|
|
define PTRACE_PEEKSIGINFO_TEST
|
|
|
|
#include <sys/ptrace.h>
|
|
|
|
int main(void)
|
|
{
|
|
struct ptrace_peeksiginfo_args args = {};
|
|
|
|
return 0;
|
|
}
|
|
|
|
endef
|
|
|
|
define SETPROCTITLE_INIT_TEST
|
|
|
|
#include <bsd/unistd.h>
|
|
|
|
int main(int argc, char *argv[], char *envp[])
|
|
{
|
|
setproctitle_init(argc, argv, envp);
|
|
|
|
return 0;
|
|
}
|
|
|
|
endef
|
|
|
|
define PTRACE_SUSPEND_SECCOMP_TEST
|
|
|
|
#include <linux/ptrace.h>
|
|
|
|
int main(void)
|
|
{
|
|
return PTRACE_O_SUSPEND_SECCOMP;
|
|
}
|
|
|
|
endef
|