Re: [PATCH] namespace.c: fix bind mount from foreign namespace

From: Miklos Szeredi
Date: Fri May 13 2005 - 12:38:29 EST


> static int do_loopback(struct nameidata *nd, char *old_name, int recurse)
> {
> struct nameidata old_nd;
> struct vfsmount *mnt = NULL;
> /* no changes of mnt */
> err = -EINVAL;
> if (check_mnt(nd->mnt) && ... ) {
> /* assigns to mnt */
> }
> if (mnt) {
> /* assigns to err */
> }
> up_write(&current->namespace->sem);
> path_release(&old_nd);
> return err;
> }
>
> Care to explain how that would not give -EINVAL?

Yeah, but that check_mnt() checks the _destination_ of the bind not
the source. The source is only checked for recursive mounts,
presumably because the source namespace is not locked, and so can
change.

Miklos
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/