Re: [PATCH] vfs: move_mount: reject moving kernel internal mounts

From: Al Viro
Date: Mon Jul 01 2019 - 14:22:47 EST


On Mon, Jul 01, 2019 at 09:45:37AM -0700, Eric Biggers wrote:
> On Sat, Jun 29, 2019 at 01:27:44PM -0700, Eric Biggers wrote:
> >
> > Reproducer:
> >
> > #include <unistd.h>
> >
> > #define __NR_move_mount 429
> > #define MOVE_MOUNT_F_EMPTY_PATH 0x00000004
> >
> > int main()
> > {
> > int fds[2];
> >
> > pipe(fds);
> > syscall(__NR_move_mount, fds[0], "", -1, "/", MOVE_MOUNT_F_EMPTY_PATH);
> > }
>
> David, I'd like to add this as a regression test somewhere.
>
> Can you point me to the tests for the new mount syscalls?
>
> I checked LTP, kselftests, and xfstests, but nothing to be found.

FWIW, it's not just move_mount(2) - I'd expect

int fds[2];
char s[80];

pipe(fds);
sprintf(s, "/dev/fd/%d", fds[0]);
mount(s, "/dev/null", NULL, MS_MOVE, 0);

to step into exactly the same thing. mount(2) does follow symlinks -
always had...