From: Oleg Nesterov <oleg@redhat.com>
To: Christian Brauner <brauner@kernel.org>
Cc: David Rheinsberg <david@readahead.eu>,
linux-kernel@vger.kernel.org, Jan Kara <jack@suse.cz>,
Kees Cook <keescook@chromium.org>,
Alexander Mikhalitsyn <alexander@mihalicyn.com>,
Luca Boccassi <bluca@debian.org>
Subject: Re: [PATCH] pid: allow pidfds for reaped tasks
Date: Fri, 11 Aug 2023 13:29:11 +0200 [thread overview]
Message-ID: <20230811112911.GA22566@redhat.com> (raw)
In-Reply-To: <20230807-porzellan-rehkitz-9fde1b94dd6b@brauner>
Hi Christian,
Sorry for delay, I've just returned from vacation and I am slowly
crawling my email backlog.
On 08/07, Christian Brauner wrote:
>
> > int pidfd_prepare(struct pid *pid, unsigned int flags, struct file **ret)
> > {
> > - if (!pid || !pid_has_task(pid, PIDTYPE_TGID))
> > + if (!pid)
> > + return -EINVAL;
> > +
> > + /*
> > + * Non thread-group leaders cannot have pidfds, but we allow them for
> > + * reaped thread-group leaders.
> > + */
> > + if (pid_has_task(pid, PIDTYPE_PID) && !pid_has_task(pid, PIDTYPE_TGID))
> > return -EINVAL;
>
> TL;DR userspace wants to be able to get a pidfd to an already reaped
> thread-group leader. I don't see any issues with this.
I guess I need to read the whole thread carefully, but right now
I don't understand this patch and the problem...
OK, suppose we have a group leader L with pid 100 and its sub-thread
T with pid 101.
With this patch pidfd_open(101) can succeed if T exits right after
find_get_pid(101) because pid_has_task(pid, PIDTYPE_PID) above will
fail, right?
This looks wrong, 101 was never a leader pid...
Oleg.
next prev parent reply other threads:[~2023-08-11 11:30 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-07 8:52 [PATCH] pid: allow pidfds for reaped tasks David Rheinsberg
2023-08-07 9:01 ` Alexander Mikhalitsyn
2023-08-07 9:12 ` David Rheinsberg
2023-08-07 9:31 ` Alexander Mikhalitsyn
2023-08-07 10:07 ` Christian Brauner
2023-08-11 11:29 ` Oleg Nesterov [this message]
2023-08-11 11:40 ` Christian Brauner
2023-08-11 11:57 ` Oleg Nesterov
2023-08-14 5:13 ` David Rheinsberg
2023-08-14 13:20 ` Oleg Nesterov
2023-08-14 13:34 ` Alexander Mikhalitsyn
2023-08-14 15:11 ` Christian Brauner
2023-08-11 11:47 ` Oleg Nesterov
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=20230811112911.GA22566@redhat.com \
--to=oleg@redhat.com \
--cc=alexander@mihalicyn.com \
--cc=bluca@debian.org \
--cc=brauner@kernel.org \
--cc=david@readahead.eu \
--cc=jack@suse.cz \
--cc=keescook@chromium.org \
--cc=linux-kernel@vger.kernel.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox