All of lore.kernel.org
 help / color / mirror / Atom feed
From: Linus Torvalds <torvalds@linux-foundation.org>
To: Karel Zak <kzak@redhat.com>
Cc: David Howells <dhowells@redhat.com>,
	Al Viro <viro@zeniv.linux.org.uk>,
	dray@redhat.com, Miklos Szeredi <mszeredi@redhat.com>,
	Steven Whitehouse <swhiteho@redhat.com>,
	Jeff Layton <jlayton@redhat.com>, Ian Kent <raven@themaw.net>,
	andres@anarazel.de,
	Christian Brauner <christian.brauner@ubuntu.com>,
	Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>,
	keyrings@vger.kernel.org,
	linux-fsdevel <linux-fsdevel@vger.kernel.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [GIT PULL] General notification queue and key notifications
Date: Fri, 12 Jun 2020 22:01:11 +0000	[thread overview]
Message-ID: <CAHk-=wjUP6WmngGq70GFKrtDp5Z9mkqORtBD2uStp2p_H-nzqA@mail.gmail.com> (raw)
In-Reply-To: <20200610111256.s47agmgy5gvj3zwz@ws.net.home>

[ Actually going through the code now ]

On Wed, Jun 10, 2020 at 4:13 AM Karel Zak <kzak@redhat.com> wrote:
>
> All the next operations are done with "fd". It's nowhere used as a
> pipe, and nothing uses pipefd[1].

As an aside, that isn't necessarily true.

In some of the examples, pipefd[1] is used for configuration (sizing
and adding filters), although I think right now that's not really
enforced, and other examples seem to have pipefd[0] do that too.

DavidH: should that perhaps be a hard rule, so that you can pass a
pipefd[0] to readers, while knowing that they can't then change the
kinds of notifications they see.

In the "pipe: Add general notification queue support" commit message,
the code example uses pipefd[0] for IOC_WATCH_QUEUE_SET_SIZE, but then
in the commit message for "watch_queue: Add a key/keyring notification
facility" it uses pipefd[1].

And that latter example does make sense: using the write-side
pipefd[1] for configuration, while the read-side pipefd[0] is the side
that sees the results. That is also how it would work if you have a
user-mode pipe with the notification source controlling the writing
side - the reading side can obviously not add filters or change the
semantics of the watches.

So that allows a trusted side to add and create filters, while some
untrusted entity can then see the results.

This isn't going to hold up me merging the code, but it would be good
to clarify and make that something that gets enforced if we decide
it's worth it.

It does seem conceptually like a good idea, and potentially actually
useful to clearly separate the domain of "you can add watches and
filters" from "you can see the notifications".

               Linus

WARNING: multiple messages have this Message-ID (diff)
From: Linus Torvalds <torvalds@linux-foundation.org>
To: Karel Zak <kzak@redhat.com>
Cc: David Howells <dhowells@redhat.com>,
	Al Viro <viro@zeniv.linux.org.uk>,
	dray@redhat.com, Miklos Szeredi <mszeredi@redhat.com>,
	Steven Whitehouse <swhiteho@redhat.com>,
	Jeff Layton <jlayton@redhat.com>, Ian Kent <raven@themaw.net>,
	andres@anarazel.de,
	Christian Brauner <christian.brauner@ubuntu.com>,
	Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>,
	keyrings@vger.kernel.org,
	linux-fsdevel <linux-fsdevel@vger.kernel.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [GIT PULL] General notification queue and key notifications
Date: Fri, 12 Jun 2020 15:01:11 -0700	[thread overview]
Message-ID: <CAHk-=wjUP6WmngGq70GFKrtDp5Z9mkqORtBD2uStp2p_H-nzqA@mail.gmail.com> (raw)
In-Reply-To: <20200610111256.s47agmgy5gvj3zwz@ws.net.home>

[ Actually going through the code now ]

On Wed, Jun 10, 2020 at 4:13 AM Karel Zak <kzak@redhat.com> wrote:
>
> All the next operations are done with "fd". It's nowhere used as a
> pipe, and nothing uses pipefd[1].

As an aside, that isn't necessarily true.

In some of the examples, pipefd[1] is used for configuration (sizing
and adding filters), although I think right now that's not really
enforced, and other examples seem to have pipefd[0] do that too.

DavidH: should that perhaps be a hard rule, so that you can pass a
pipefd[0] to readers, while knowing that they can't then change the
kinds of notifications they see.

In the "pipe: Add general notification queue support" commit message,
the code example uses pipefd[0] for IOC_WATCH_QUEUE_SET_SIZE, but then
in the commit message for "watch_queue: Add a key/keyring notification
facility" it uses pipefd[1].

And that latter example does make sense: using the write-side
pipefd[1] for configuration, while the read-side pipefd[0] is the side
that sees the results. That is also how it would work if you have a
user-mode pipe with the notification source controlling the writing
side - the reading side can obviously not add filters or change the
semantics of the watches.

So that allows a trusted side to add and create filters, while some
untrusted entity can then see the results.

This isn't going to hold up me merging the code, but it would be good
to clarify and make that something that gets enforced if we decide
it's worth it.

It does seem conceptually like a good idea, and potentially actually
useful to clearly separate the domain of "you can add watches and
filters" from "you can see the notifications".

               Linus

  parent reply	other threads:[~2020-06-12 22:01 UTC|newest]

Thread overview: 203+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-30 13:58 Upcoming: Notifications, FS notifications and fsinfo() David Howells
2020-03-30 13:58 ` David Howells
2020-03-30 14:31 ` [GIT PULL] General notification queue and key notifications David Howells
2020-03-30 14:31   ` David Howells
2020-03-31  6:51   ` Stephen Rothwell
2020-03-31  6:51     ` Stephen Rothwell
2020-06-02 15:55   ` David Howells
2020-06-02 15:55     ` David Howells
2020-06-03  2:15     ` Ian Kent
2020-06-03  2:15       ` Ian Kent
2020-06-08  0:49       ` Ian Kent
2020-06-08  0:49         ` Ian Kent
2020-06-10  9:56     ` Christian Brauner
2020-06-10  9:56       ` Christian Brauner
2020-06-10 11:12     ` Karel Zak
2020-06-10 11:12       ` Karel Zak
2020-06-12 21:32       ` Linus Torvalds
2020-06-12 21:32         ` Linus Torvalds
2020-06-12 22:01       ` Linus Torvalds [this message]
2020-06-12 22:01         ` Linus Torvalds
2020-06-13 13:04       ` David Howells
2020-06-13 13:04         ` David Howells
2020-06-13 16:47         ` Linus Torvalds
2020-06-13 16:47           ` Linus Torvalds
2020-06-13 17:03           ` Linus Torvalds
2020-06-13 17:03             ` Linus Torvalds
2020-06-13 19:22         ` Miklos Szeredi
2020-06-13 19:22           ` Miklos Szeredi
2020-06-13 13:24       ` David Howells
2020-06-13 13:24         ` David Howells
2020-06-13 18:00     ` pr-tracker-bot
2020-06-13 18:00       ` pr-tracker-bot
2020-06-17  1:15     ` Williams, Dan J
2020-06-17  1:15       ` Williams, Dan J
2020-06-17  1:15       ` Williams, Dan J
2020-06-23 23:38       ` Dan Williams
2020-06-23 23:38         ` Dan Williams
2020-06-23 23:38         ` Dan Williams
2020-06-24  0:55       ` David Howells
2020-06-24  0:55         ` David Howells
2020-06-24  0:55         ` David Howells
2020-06-24  1:03         ` Dan Williams
2020-06-24  1:03           ` Dan Williams
2020-06-24  1:03           ` Dan Williams
2020-06-24  1:17         ` David Howells
2020-06-24  1:17           ` David Howells
2020-06-24  1:17           ` David Howells
2020-03-30 14:36 ` [GIT PULL] Mount and superblock notifications David Howells
2020-03-30 14:36   ` David Howells
2020-04-04 21:13   ` Linus Torvalds
2020-04-04 21:13     ` Linus Torvalds
2020-04-05 22:52     ` Andres Freund
2020-04-05 22:52       ` Andres Freund
2020-03-30 14:43 ` [GIT PULL] fsinfo: Filesystem information query David Howells
2020-03-30 14:43   ` David Howells
2020-03-30 20:28 ` Upcoming: Notifications, FS notifications and fsinfo() Miklos Szeredi
2020-03-30 20:28   ` Miklos Szeredi
2020-03-31  9:21   ` Karel Zak
2020-03-31  9:21     ` Karel Zak
2020-03-30 21:17 ` Christian Brauner
2020-03-30 21:17   ` Christian Brauner
2020-03-31  5:11   ` Miklos Szeredi
2020-03-31  5:11     ` Miklos Szeredi
2020-03-31  8:15     ` Christian Brauner
2020-03-31  8:15       ` Christian Brauner
2020-03-31  8:34       ` Miklos Szeredi
2020-03-31  8:34         ` Miklos Szeredi
2020-03-31  8:34     ` Karel Zak
2020-03-31  8:34       ` Karel Zak
2020-03-31  8:56       ` Miklos Szeredi
2020-03-31  8:56         ` Miklos Szeredi
2020-03-31  9:49         ` Karel Zak
2020-03-31  9:49           ` Karel Zak
2020-03-31 12:25         ` Lennart Poettering
2020-03-31 12:25           ` Lennart Poettering
2020-03-31 15:10           ` Miklos Szeredi
2020-03-31 15:10             ` Miklos Szeredi
2020-03-31 15:24             ` Lennart Poettering
2020-03-31 15:24               ` Lennart Poettering
2020-03-31 21:56         ` David Howells
2020-03-31 21:56           ` David Howells
2020-03-31 21:54     ` David Howells
2020-03-31 21:54       ` David Howells
2020-04-01  8:43       ` Karel Zak
2020-04-01  8:43         ` Karel Zak
2020-03-31  7:22   ` Lennart Poettering
2020-03-31  7:22     ` Lennart Poettering
2020-03-31 17:31 ` David Howells
2020-03-31 17:31   ` David Howells
2020-03-31 19:42   ` Miklos Szeredi
2020-03-31 19:42     ` Miklos Szeredi
2020-03-31 19:47   ` David Howells
2020-03-31 19:47     ` David Howells
2020-03-31 21:14   ` David Howells
2020-03-31 21:14     ` David Howells
2020-03-31 21:23   ` David Howells
2020-03-31 21:23     ` David Howells
2020-03-31 21:52 ` David Howells
2020-03-31 21:52   ` David Howells
2020-04-01  9:04   ` Karel Zak
2020-04-01  9:04     ` Karel Zak
2020-04-01 13:34     ` Miklos Szeredi
2020-04-01 13:34       ` Miklos Szeredi
2020-04-01 13:55     ` David Howells
2020-04-01 13:55       ` David Howells
2020-04-01 13:58     ` David Howells
2020-04-01 13:58       ` David Howells
2020-04-01 15:25       ` Miklos Szeredi
2020-04-01 15:25         ` Miklos Szeredi
2020-04-03  9:11         ` Karel Zak
2020-04-03  9:11           ` Karel Zak
2020-04-01 16:01       ` David Howells
2020-04-01 16:01         ` David Howells
2020-04-01 16:30         ` Miklos Szeredi
2020-04-01 16:30           ` Miklos Szeredi
2020-04-02 15:22         ` David Howells
2020-04-02 15:22           ` David Howells
2020-04-02 15:24           ` Miklos Szeredi
2020-04-02 15:24             ` Miklos Szeredi
2020-04-02 15:42           ` David Howells
2020-04-02 15:42             ` David Howells
2020-04-02 15:24         ` David Howells
2020-04-02 15:24           ` David Howells
2020-04-01 14:41   ` Lennart Poettering
2020-04-01 14:41     ` Lennart Poettering
2020-04-01 15:33     ` Miklos Szeredi
2020-04-01 15:33       ` Miklos Szeredi
2020-04-01 16:06     ` David Howells
2020-04-01 16:06       ` David Howells
2020-04-01 16:40       ` Miklos Szeredi
2020-04-01 16:40         ` Miklos Szeredi
2020-04-02  2:52         ` Ian Kent
2020-04-02  2:52           ` Ian Kent
2020-04-02 13:52           ` Miklos Szeredi
2020-04-02 13:52             ` Miklos Szeredi
2020-04-02 14:36             ` Lennart Poettering
2020-04-02 14:36               ` Lennart Poettering
2020-04-02 15:22               ` Miklos Szeredi
2020-04-02 15:22                 ` Miklos Szeredi
2020-04-02 15:28                 ` Lennart Poettering
2020-04-02 15:28                   ` Lennart Poettering
2020-04-02 15:35                   ` Miklos Szeredi
2020-04-02 15:35                     ` Miklos Szeredi
2020-04-02 15:50                     ` Lennart Poettering
2020-04-02 15:50                       ` Lennart Poettering
2020-04-02 17:20                       ` Miklos Szeredi
2020-04-02 17:20                         ` Miklos Szeredi
2020-04-03 11:08                         ` Lennart Poettering
2020-04-03 11:08                           ` Lennart Poettering
2020-04-03 11:48                           ` Miklos Szeredi
2020-04-03 11:48                             ` Miklos Szeredi
2020-04-03 15:01                             ` Lennart Poettering
2020-04-03 15:01                               ` Lennart Poettering
2020-04-06  9:22                               ` Miklos Szeredi
2020-04-06  9:22                                 ` Miklos Szeredi
2020-04-06 17:29                                 ` Lennart Poettering
2020-04-06 17:29                                   ` Lennart Poettering
2020-04-07  2:21                                   ` Ian Kent
2020-04-07  2:21                                     ` Ian Kent
2020-04-07 13:59                                     ` Miklos Szeredi
2020-04-07 13:59                                       ` Miklos Szeredi
2020-04-07 15:53                                       ` Lennart Poettering
2020-04-07 15:53                                         ` Lennart Poettering
2020-04-07 16:06                                         ` Miklos Szeredi
2020-04-07 16:06                                           ` Miklos Szeredi
2020-04-02 15:51                 ` David Howells
2020-04-02 15:51                   ` David Howells
2020-04-02 15:56                 ` David Howells
2020-04-02 15:56                   ` David Howells
2020-04-03  1:44             ` Ian Kent
2020-04-03  1:44               ` Ian Kent
2020-04-03 11:11               ` Lennart Poettering
2020-04-03 11:11                 ` Lennart Poettering
2020-04-03 11:38                 ` Miklos Szeredi
2020-04-03 11:38                   ` Miklos Szeredi
2020-04-03 12:05                   ` Richard Weinberger
2020-04-03 12:05                     ` Richard Weinberger
2020-04-03 15:12                   ` Lennart Poettering
2020-04-03 15:12                     ` Lennart Poettering
2020-04-03 20:30                     ` J. Bruce Fields
2020-04-03 20:30                       ` J. Bruce Fields
2020-04-06  8:35                       ` Miklos Szeredi
2020-04-06  8:35                         ` Miklos Szeredi
2020-04-06 16:07                         ` J. Bruce Fields
2020-04-06 16:07                           ` J. Bruce Fields
2020-04-06  9:17                       ` Karel Zak
2020-04-06  9:17                         ` Karel Zak
2020-04-06 16:34                         ` Linus Torvalds
2020-04-06 16:34                           ` Linus Torvalds
2020-04-06 18:46                           ` J. Bruce Fields
2020-04-06 18:46                             ` J. Bruce Fields
2020-04-06 18:48                           ` Lennart Poettering
2020-04-06 18:48                             ` Lennart Poettering
2020-04-08  3:36                             ` Linus Torvalds
2020-04-08  3:36                               ` Linus Torvalds
2020-04-03 15:36                   ` David Howells
2020-04-03 15:36                     ` David Howells
2020-04-03 15:41                     ` Lennart Poettering
2020-04-03 15:41                       ` Lennart Poettering
2020-06-02 15:51 [GIT PULL] General notification queue and key notifications David Howells
2020-06-02 15:51 ` David Howells
2020-06-02 15:54 ` David Howells
2020-06-02 15:54   ` David Howells

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='CAHk-=wjUP6WmngGq70GFKrtDp5Z9mkqORtBD2uStp2p_H-nzqA@mail.gmail.com' \
    --to=torvalds@linux-foundation.org \
    --cc=andres@anarazel.de \
    --cc=christian.brauner@ubuntu.com \
    --cc=dhowells@redhat.com \
    --cc=dray@redhat.com \
    --cc=jarkko.sakkinen@linux.intel.com \
    --cc=jlayton@redhat.com \
    --cc=keyrings@vger.kernel.org \
    --cc=kzak@redhat.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mszeredi@redhat.com \
    --cc=raven@themaw.net \
    --cc=swhiteho@redhat.com \
    --cc=viro@zeniv.linux.org.uk \
    /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.