]> git.proxmox.com Git - mirror_lxc.git/blobdiff - src/lxc/seccomp.c
seccomp: cleanup compat architecture handling
[mirror_lxc.git] / src / lxc / seccomp.c
index 60118852d436fed2178814c74b504943ebac3f2a..6a4f474c8ac214e6ebb4ef17133a0add5e6fd123 100644 (file)
@@ -789,24 +789,36 @@ static int parse_config_v2(FILE *f, char *line, struct lxc_conf *conf)
                }
        }
 
+       INFO("Merging compat seccomp contexts into main context");
        if (compat_ctx[0]) {
-               INFO("Merging compat seccomp contexts into main context");
-               if (compat_arch[0] != native_arch && compat_arch[0] != seccomp_arch_native()) {
+               if ((compat_arch[0] != native_arch) &&
+                   (compat_arch[0] != seccomp_arch_native())) {
                        ret = seccomp_merge(conf->seccomp_ctx, compat_ctx[0]);
                        if (ret < 0) {
-                               ERROR("Failed to merge first compat seccomp context into main context");
+                               ERROR("Failed to merge first compat seccomp "
+                                     "context into main context");
                                goto bad;
                        }
                        TRACE("Merged first compat seccomp context into main context");
+               } else {
+                       seccomp_release(compat_ctx[0]);
+                       compat_ctx[0] = NULL;
                }
+       }
 
-               if (compat_arch[1] && compat_arch[1] != native_arch && compat_arch[1] != seccomp_arch_native()) {
+       if (compat_ctx[1]) {
+               if ((compat_arch[1] != native_arch) &&
+                   (compat_arch[1] != seccomp_arch_native())) {
                        ret = seccomp_merge(conf->seccomp_ctx, compat_ctx[1]);
                        if (ret < 0) {
-                               ERROR("Failed to merge first compat seccomp context into main context");
+                               ERROR("Failed to merge first compat seccomp "
+                                     "context into main context");
                                goto bad;
                        }
                        TRACE("Merged second compat seccomp context into main context");
+               } else {
+                       seccomp_release(compat_ctx[1]);
+                       compat_ctx[1] = NULL;
                }
        }