Skip to content

Commit

Permalink
seccomp: handle all errors
Browse files Browse the repository at this point in the history
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
  • Loading branch information
Christian Brauner committed Apr 13, 2018
1 parent 2c80e9c commit adfee3a
Showing 1 changed file with 19 additions and 5 deletions.
24 changes: 19 additions & 5 deletions src/lxc/seccomp.c
Expand Up @@ -371,20 +371,34 @@ scmp_filter_ctx get_new_ctx(enum lxc_hostarch_t n_arch, uint32_t default_policy_
}
#endif

if (seccomp_arch_exist(ctx, arch) == -EEXIST) {
ret = seccomp_arch_exist(ctx, arch);
if (ret < 0) {
if (ret != -EEXIST) {
ERROR("%s - Failed to determine whether arch %d is "
"already present in the main seccomp context",
strerror(-ret), (int)n_arch);
seccomp_release(ctx);
return NULL;
}

ret = seccomp_arch_add(ctx, arch);
if (ret != 0) {
ERROR("Seccomp error %d (%s) adding arch: %d", ret,
strerror(-ret), (int)n_arch);
ERROR("%s - Failed to add arch %d to main seccomp context",
strerror(-ret), (int)n_arch);
seccomp_release(ctx);
return NULL;
}
TRACE("Added arch %d to main seccomp context", (int)n_arch);

if (seccomp_arch_remove(ctx, SCMP_ARCH_NATIVE) != 0) {
ERROR("Seccomp error removing native arch");
ret = seccomp_arch_remove(ctx, SCMP_ARCH_NATIVE);
if (ret != 0) {
ERROR("Failed to remove native arch from main seccomp context");
seccomp_release(ctx);
return NULL;
}
TRACE("Removed native arch from main seccomp context");
} else {
TRACE("Arch %d already present in main seccomp context", (int)n_arch);
}

return ctx;
Expand Down

0 comments on commit adfee3a

Please sign in to comment.