Commit 012e3322 authored by Christian Brauner's avatar Christian Brauner Committed by Linus Torvalds

fs/mount_setattr: always cleanup mount_kattr

Make sure that finish_mount_kattr() is called after mount_kattr was
succesfully built in both the success and failure case to prevent
leaking any references we took when we built it.  We returned early if
path lookup failed thereby risking to leak an additional reference we
took when building mount_kattr when an idmapped mount was requested.

Cc: linux-fsdevel@vger.kernel.org
Cc: stable@vger.kernel.org
Fixes: 9caccd41 ("fs: introduce MOUNT_ATTR_IDMAP")
Signed-off-by: default avatarChristian Brauner <christian.brauner@ubuntu.com>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 74c78b42
...@@ -4263,12 +4263,11 @@ SYSCALL_DEFINE5(mount_setattr, int, dfd, const char __user *, path, ...@@ -4263,12 +4263,11 @@ SYSCALL_DEFINE5(mount_setattr, int, dfd, const char __user *, path,
return err; return err;
err = user_path_at(dfd, path, kattr.lookup_flags, &target); err = user_path_at(dfd, path, kattr.lookup_flags, &target);
if (err) if (!err) {
return err; err = do_mount_setattr(&target, &kattr);
path_put(&target);
err = do_mount_setattr(&target, &kattr); }
finish_mount_kattr(&kattr); finish_mount_kattr(&kattr);
path_put(&target);
return err; return err;
} }
......
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