]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
core: clear bind mounts on error
authorYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 27 Aug 2020 04:49:21 +0000 (13:49 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 27 Aug 2020 09:20:34 +0000 (18:20 +0900)
Follow-up for bbb4e7f39f2c68c719c26c2c65f8b7b91b009e92.

Fixes CID#1431998.

src/core/execute.c

index 444c3985f1bad3ff85f984f5bebce6b78930d350..1680fc72a201e731925598a1726934b0da4ca11e 100644 (file)
@@ -3127,8 +3127,10 @@ static int apply_mount_namespace(
 
         if (exec_context_has_credentials(context) && params->prefix[EXEC_DIRECTORY_RUNTIME]) {
                 creds_path = path_join(params->prefix[EXEC_DIRECTORY_RUNTIME], "credentials", u->id);
-                if (!creds_path)
-                        return -ENOMEM;
+                if (!creds_path) {
+                        r = -ENOMEM;
+                        goto finalize;
+                }
         }
 
         r = setup_namespace(root_dir, root_image, context->root_image_options,
@@ -3174,6 +3176,7 @@ static int apply_mount_namespace(
                 }
         }
 
+finalize:
         bind_mount_free_many(bind_mounts, n_bind_mounts);
         return r;
 }