Unverified Commit 55cbb1a6 by Ruben Jenster Committed by Christian Brauner

seccomp: Avoid duplicate processing of rules for host native arch.

parent 687f9b9b
...@@ -653,6 +653,8 @@ static int parse_config_v2(FILE *f, char *line, size_t *line_bufsz, struct lxc_c ...@@ -653,6 +653,8 @@ static int parse_config_v2(FILE *f, char *line, size_t *line_bufsz, struct lxc_c
default_rule_action = SCMP_ACT_ALLOW; default_rule_action = SCMP_ACT_ALLOW;
} }
DEBUG("Host native arch is [%u]", seccomp_arch_native());
memset(&ctx, 0, sizeof(ctx)); memset(&ctx, 0, sizeof(ctx));
ctx.architectures[0] = SCMP_ARCH_NATIVE; ctx.architectures[0] = SCMP_ARCH_NATIVE;
ctx.architectures[1] = SCMP_ARCH_NATIVE; ctx.architectures[1] = SCMP_ARCH_NATIVE;
...@@ -1001,23 +1003,15 @@ static int parse_config_v2(FILE *f, char *line, size_t *line_bufsz, struct lxc_c ...@@ -1001,23 +1003,15 @@ static int parse_config_v2(FILE *f, char *line, size_t *line_bufsz, struct lxc_c
if (ret == lxc_seccomp_rule_undefined_syscall) if (ret == lxc_seccomp_rule_undefined_syscall)
continue; continue;
if (ctx.architectures[0] != SCMP_ARCH_NATIVE) { for (int i = 0; i < 3; i++ ) {
if (lxc_seccomp_rule_err == do_resolve_add_rule(ctx.architectures[0], line, uint32_t arch = ctx.architectures[i];
ctx.contexts[0], &rule)) if (arch != SCMP_ARCH_NATIVE && arch != seccomp_arch_native()) {
goto bad_rule; if (lxc_seccomp_rule_err == do_resolve_add_rule(arch, line,
} ctx.contexts[i], &rule))
goto bad_rule;
if (ctx.architectures[1] != SCMP_ARCH_NATIVE) { }
if (lxc_seccomp_rule_err == do_resolve_add_rule(ctx.architectures[1], line,
ctx.contexts[1], &rule))
goto bad_rule;
} }
if (ctx.architectures[2] != SCMP_ARCH_NATIVE) {
if (lxc_seccomp_rule_err == do_resolve_add_rule(ctx.architectures[2], line,
ctx.contexts[2], &rule))
goto bad_rule;
}
} }
INFO("Merging compat seccomp contexts into main context"); INFO("Merging compat seccomp contexts into main context");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment