]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
seccomp: cleanup compat architecture handling
authorChristian Brauner <christian.brauner@ubuntu.com>
Sun, 15 Apr 2018 20:12:51 +0000 (22:12 +0200)
committerChristian Brauner <christian.brauner@ubuntu.com>
Sun, 15 Apr 2018 20:12:51 +0000 (22:12 +0200)
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
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;
                }
        }