All of lore.kernel.org
 help / color / mirror / Atom feed
From: Al Viro <viro@zeniv.linux.org.uk>
To: Aleksa Sarai <cyphar@cyphar.com>
Cc: Song Liu <songliubraving@fb.com>,
	linux-ia64@vger.kernel.org, linux-sh@vger.kernel.org,
	Peter Zijlstra <peterz@infradead.org>,
	Rasmus Villemoes <linux@rasmusvillemoes.dk>,
	Alexei Starovoitov <ast@kernel.org>,
	linux-kernel@vger.kernel.org, David Howells <dhowells@redhat.com>,
	linux-kselftest@vger.kernel.org, sparclinux@vger.kernel.org,
	containers@lists.linux-foundation.org,
	Christian Brauner <christian.brauner@ubuntu.com>,
	linux-api@vger.kernel.org, Shuah Khan <shuah@kernel.org>,
	linux-arch@vger.kernel.org, linux-s390@vger.kernel.org,
	Tycho Andersen <tycho@tycho.ws>,
	Daniel Borkmann <daniel@iogearbox.net>,
	Jiri Olsa <jolsa@redhat.com>,
	Alexander Shishkin <alexander.shishkin@linux.intel.com>,
	Ingo Molnar <mingo@redhat.com>,
	linux-arm-kernel@lists.infradead.org, Yonghong Song <yhs@fb.com>,
	linux-mips@vger.kernel.org, Andrii Nakryiko <andriin@fb.com>,
	bpf@vger.kernel.org, l
Subject: Re: [PATCH v16 09/12] namei: LOOKUP_{IN_ROOT,BENEATH}: permit limited ".." resolution
Date: Sat, 16 Nov 2019 01:03:27 +0000	[thread overview]
Message-ID: <20191116010327.GZ26530@ZenIV.linux.org.uk> (raw)
In-Reply-To: <20191116002802.6663-10-cyphar@cyphar.com>

On Sat, Nov 16, 2019 at 11:27:59AM +1100, Aleksa Sarai wrote:

> +		if (unlikely(nd->flags & LOOKUP_IS_SCOPED)) {
> +			bool m_retry = read_seqretry(&mount_lock, nd->m_seq);
> +			bool r_retry = read_seqretry(&rename_lock, nd->r_seq);
> +
> +			/*
> +			 * If there was a racing rename or mount along our
> +			 * path, then we can't be sure that ".." hasn't jumped
> +			 * above nd->root (and so userspace should retry or use
> +			 * some fallback).
> +			 */
> +			if (unlikely(m_retry || r_retry))
> +				return -EAGAIN;
> +		}
>  	}
>  	return 0;

Elaborate...  Do these boolean variables make any sense now, really?

WARNING: multiple messages have this Message-ID (diff)
From: Al Viro <viro@zeniv.linux.org.uk>
To: Aleksa Sarai <cyphar@cyphar.com>
Cc: Song Liu <songliubraving@fb.com>,
	linux-ia64@vger.kernel.org, linux-sh@vger.kernel.org,
	Peter Zijlstra <peterz@infradead.org>,
	Rasmus Villemoes <linux@rasmusvillemoes.dk>,
	Alexei Starovoitov <ast@kernel.org>,
	linux-kernel@vger.kernel.org, David Howells <dhowells@redhat.com>,
	linux-kselftest@vger.kernel.org, sparclinux@vger.kernel.org,
	containers@lists.linux-foundation.org,
	Christian Brauner <christian.brauner@ubuntu.com>,
	linux-api@vger.kernel.org, Shuah Khan <shuah@kernel.org>,
	linux-arch@vger.kernel.org, linux-s390@vger.kernel.org,
	Tycho Andersen <tycho@tycho.ws>,
	Daniel Borkmann <daniel@iogearbox.net>,
	Jiri Olsa <jolsa@redhat.com>,
	Alexander Shishkin <alexander.shishkin@linux.intel.com>,
	Ingo Molnar <mingo@redhat.com>,
	linux-arm-kernel@lists.infradead.org, Yonghong Song <yhs@fb.com>,
	linux-mips@vger.kernel.org, Andrii Nakryiko <andriin@fb.com>,
	bpf@vger.kernel.orgl
Subject: Re: [PATCH v16 09/12] namei: LOOKUP_{IN_ROOT,BENEATH}: permit limited ".." resolution
Date: Sat, 16 Nov 2019 01:03:27 +0000	[thread overview]
Message-ID: <20191116010327.GZ26530@ZenIV.linux.org.uk> (raw)
In-Reply-To: <20191116002802.6663-10-cyphar@cyphar.com>

On Sat, Nov 16, 2019 at 11:27:59AM +1100, Aleksa Sarai wrote:

> +		if (unlikely(nd->flags & LOOKUP_IS_SCOPED)) {
> +			bool m_retry = read_seqretry(&mount_lock, nd->m_seq);
> +			bool r_retry = read_seqretry(&rename_lock, nd->r_seq);
> +
> +			/*
> +			 * If there was a racing rename or mount along our
> +			 * path, then we can't be sure that ".." hasn't jumped
> +			 * above nd->root (and so userspace should retry or use
> +			 * some fallback).
> +			 */
> +			if (unlikely(m_retry || r_retry))
> +				return -EAGAIN;
> +		}
>  	}
>  	return 0;

Elaborate...  Do these boolean variables make any sense now, really?

WARNING: multiple messages have this Message-ID (diff)
From: Al Viro <viro@zeniv.linux.org.uk>
To: Aleksa Sarai <cyphar@cyphar.com>
Cc: Song Liu <songliubraving@fb.com>,
	linux-ia64@vger.kernel.org, linux-sh@vger.kernel.org,
	Peter Zijlstra <peterz@infradead.org>,
	Rasmus Villemoes <linux@rasmusvillemoes.dk>,
	Alexei Starovoitov <ast@kernel.org>,
	linux-kernel@vger.kernel.org, David Howells <dhowells@redhat.com>,
	linux-kselftest@vger.kernel.org, sparclinux@vger.kernel.org,
	containers@lists.linux-foundation.org,
	Christian Brauner <christian.brauner@ubuntu.com>,
	linux-api@vger.kernel.org, Shuah Khan <shuah@kernel.org>,
	linux-arch@vger.kernel.org, linux-s390@vger.kernel.org,
	Tycho Andersen <tycho@tycho.ws>,
	Daniel Borkmann <daniel@iogearbox.net>,
	Jiri Olsa <jolsa@redhat.com>,
	Alexander Shishkin <alexander.shishkin@linux.intel.com>,
	Ingo Molnar <mingo@redhat.com>,
	linux-arm-kernel@lists.infradead.org, Yonghong Song <yhs@fb.com>,
	linux-mips@vger.kernel.org, Andrii Nakryiko <andriin@fb.com>,
	bpf@vger.kernel.org, linux-xtensa@linux-xtensa.org,
	Kees Cook <keescook@chromium.org>, Arnd Bergmann <arnd@arndb.de>,
	Jann Horn <jannh@google.com>,
	linuxppc-dev@lists.ozlabs.org, dev@opencontainers.org,
	linux-m68k@lists.linux-m68k.org,
	Andy Lutomirski <luto@kernel.org>,
	Shuah Khan <skhan@linuxfoundation.org>,
	Namhyung Kim <namhyung@kernel.org>,
	David Drysdale <drysdale@google.com>,
	Christian Brauner <christian@brauner.io>,
	"J. Bruce Fields" <bfields@fieldses.org>,
	libc-alpha@sourceware.org, Aleksa Sarai <asarai@suse.de>,
	linux-parisc@vger.kernel.org, netdev@vger.kernel.org,
	Chanho Min <chanho.min@lge.com>, Jeff Layton <jlayton@kernel.org>,
	Oleg Nesterov <oleg@redhat.com>,
	Eric Biederman <ebiederm@xmission.com>,
	linux-alpha@vger.kernel.org, linux-fsdevel@vger.kernel.org,
	Andrew Morton <akpm@linux-foundation.org>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Martin KaFai Lau <kafai@fb.com>
Subject: Re: [PATCH v16 09/12] namei: LOOKUP_{IN_ROOT,BENEATH}: permit limited ".." resolution
Date: Sat, 16 Nov 2019 01:03:27 +0000	[thread overview]
Message-ID: <20191116010327.GZ26530@ZenIV.linux.org.uk> (raw)
In-Reply-To: <20191116002802.6663-10-cyphar@cyphar.com>

On Sat, Nov 16, 2019 at 11:27:59AM +1100, Aleksa Sarai wrote:

> +		if (unlikely(nd->flags & LOOKUP_IS_SCOPED)) {
> +			bool m_retry = read_seqretry(&mount_lock, nd->m_seq);
> +			bool r_retry = read_seqretry(&rename_lock, nd->r_seq);
> +
> +			/*
> +			 * If there was a racing rename or mount along our
> +			 * path, then we can't be sure that ".." hasn't jumped
> +			 * above nd->root (and so userspace should retry or use
> +			 * some fallback).
> +			 */
> +			if (unlikely(m_retry || r_retry))
> +				return -EAGAIN;
> +		}
>  	}
>  	return 0;

Elaborate...  Do these boolean variables make any sense now, really?

  reply	other threads:[~2019-11-16  1:03 UTC|newest]

Thread overview: 81+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-16  0:27 [PATCH v16 00/12] open: introduce openat2(2) syscall Aleksa Sarai
2019-11-16  0:27 ` Aleksa Sarai
2019-11-16  0:27 ` Aleksa Sarai
2019-11-16  0:27 ` Aleksa Sarai
2019-11-16  0:27 ` Aleksa Sarai
2019-11-16  0:27 ` [PATCH v16 01/12] nsfs: clean-up ns_get_path() signature to return int Aleksa Sarai
2019-11-16  0:27   ` Aleksa Sarai
2019-11-16  0:27   ` Aleksa Sarai
2019-11-16  0:27   ` Aleksa Sarai
2019-11-16  0:27 ` [PATCH v16 02/12] namei: allow nd_jump_link() to produce errors Aleksa Sarai
2019-11-16  0:27   ` Aleksa Sarai
2019-11-16  0:27   ` Aleksa Sarai
2019-11-16  0:27   ` Aleksa Sarai
2019-11-16  0:27   ` Aleksa Sarai
2019-11-16  0:37   ` Al Viro
2019-11-16  0:37     ` Al Viro
2019-11-16  0:37     ` Al Viro
2019-11-16 18:09     ` Aleksa Sarai
2019-11-16 18:09       ` Aleksa Sarai
2019-11-16 18:09       ` Aleksa Sarai
2019-11-16 18:09       ` Aleksa Sarai
2019-11-16 18:09       ` Aleksa Sarai
2019-11-16  0:27 ` [PATCH v16 03/12] namei: allow set_root() " Aleksa Sarai
2019-11-16  0:27   ` Aleksa Sarai
2019-11-16  0:27   ` Aleksa Sarai
2019-11-16  0:27   ` Aleksa Sarai
2019-11-16  0:27   ` Aleksa Sarai
2019-11-16  0:27 ` [PATCH v16 04/12] namei: LOOKUP_NO_SYMLINKS: block symlink resolution Aleksa Sarai
2019-11-16  0:27   ` Aleksa Sarai
2019-11-16  0:27   ` Aleksa Sarai
2019-11-16  0:27   ` Aleksa Sarai
2019-11-16  0:27   ` Aleksa Sarai
2019-11-16  0:27 ` [PATCH v16 05/12] namei: LOOKUP_NO_MAGICLINKS: block magic-link resolution Aleksa Sarai
2019-11-16  0:27   ` Aleksa Sarai
2019-11-16  0:27   ` Aleksa Sarai
2019-11-16  0:27   ` Aleksa Sarai
2019-11-16  0:27   ` Aleksa Sarai
2019-11-16  0:27 ` [PATCH v16 06/12] namei: LOOKUP_NO_XDEV: block mountpoint crossing Aleksa Sarai
2019-11-16  0:27   ` Aleksa Sarai
2019-11-16  0:27   ` Aleksa Sarai
2019-11-16  0:27   ` Aleksa Sarai
2019-11-16  0:27   ` Aleksa Sarai
2019-11-16  1:01   ` Al Viro
2019-11-16  1:01     ` Al Viro
2019-11-16  1:01     ` Al Viro
2019-11-16 17:24     ` Aleksa Sarai
2019-11-16 17:24       ` Aleksa Sarai
2019-11-16 17:24       ` Aleksa Sarai
2019-11-16  0:27 ` [PATCH v16 07/12] namei: LOOKUP_BENEATH: O_BENEATH-like scoped resolution Aleksa Sarai
2019-11-16  0:27   ` Aleksa Sarai
2019-11-16  0:27   ` Aleksa Sarai
2019-11-16  0:27   ` Aleksa Sarai
2019-11-16  0:27   ` Aleksa Sarai
2019-11-16  0:27 ` [PATCH v16 08/12] namei: LOOKUP_IN_ROOT: chroot-like " Aleksa Sarai
2019-11-16  0:27   ` Aleksa Sarai
2019-11-16  0:27   ` Aleksa Sarai
2019-11-16  0:27   ` Aleksa Sarai
2019-11-16  0:27 ` [PATCH v16 09/12] namei: LOOKUP_{IN_ROOT,BENEATH}: permit limited ".." resolution Aleksa Sarai
2019-11-16  0:27   ` [PATCH v16 09/12] namei: LOOKUP_{IN_ROOT, BENEATH}: " Aleksa Sarai
2019-11-16  0:27   ` [PATCH v16 09/12] namei: LOOKUP_{IN_ROOT,BENEATH}: " Aleksa Sarai
2019-11-16  0:27   ` Aleksa Sarai
2019-11-16  1:03   ` Al Viro [this message]
2019-11-16  1:03     ` Al Viro
2019-11-16  1:03     ` Al Viro
2019-11-16 16:38     ` Aleksa Sarai
2019-11-16 16:38       ` Aleksa Sarai
2019-11-16 16:38       ` Aleksa Sarai
2019-11-16  0:28 ` [PATCH v16 10/12] open: introduce openat2(2) syscall Aleksa Sarai
2019-11-16  0:28   ` Aleksa Sarai
2019-11-16  0:28   ` Aleksa Sarai
2019-11-16  0:28   ` Aleksa Sarai
2019-11-16  0:28 ` [PATCH v16 11/12] selftests: add openat2(2) selftests Aleksa Sarai
2019-11-16  0:28   ` Aleksa Sarai
2019-11-16  0:28   ` Aleksa Sarai
2019-11-16  0:28   ` Aleksa Sarai
2019-11-16  0:28   ` Aleksa Sarai
2019-11-16  0:28 ` [PATCH v16 12/12] Documentation: path-lookup: include new LOOKUP flags Aleksa Sarai
2019-11-16  0:28   ` Aleksa Sarai
2019-11-16  0:28   ` Aleksa Sarai
2019-11-16  0:28   ` Aleksa Sarai
2019-11-16  0:28   ` Aleksa Sarai

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20191116010327.GZ26530@ZenIV.linux.org.uk \
    --to=viro@zeniv.linux.org.uk \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=andriin@fb.com \
    --cc=ast@kernel.org \
    --cc=bpf@vger.kernel.org \
    --cc=christian.brauner@ubuntu.com \
    --cc=containers@lists.linux-foundation.org \
    --cc=cyphar@cyphar.com \
    --cc=daniel@iogearbox.net \
    --cc=dhowells@redhat.com \
    --cc=jolsa@redhat.com \
    --cc=linux-api@vger.kernel.org \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-ia64@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=linux-mips@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=linux-sh@vger.kernel.org \
    --cc=linux@rasmusvillemoes.dk \
    --cc=mingo@redhat.com \
    --cc=peterz@infradead.org \
    --cc=shuah@kernel.org \
    --cc=songliubraving@fb.com \
    --cc=sparclinux@vger.kernel.org \
    --cc=tycho@tycho.ws \
    --cc=yhs@fb.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.