diff mbox series

[4.19,21/57] proc: dont allow async path resolution of /proc/self components

Message ID 20201201084650.205087954@linuxfoundation.org
State Superseded
Headers show
Series None | expand

Commit Message

Greg Kroah-Hartman Dec. 1, 2020, 8:53 a.m. UTC
From: Jens Axboe <axboe@kernel.dk>

[ Upstream commit 8d4c3e76e3be11a64df95ddee52e99092d42fc19 ]

If this is attempted by a kthread, then return -EOPNOTSUPP as we don't
currently support that. Once we can get task_pid_ptr() doing the right
thing, then this can go away again.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 fs/proc/self.c | 7 +++++++
 1 file changed, 7 insertions(+)

Comments

Yang Yingliang March 2, 2021, 8:40 a.m. UTC | #1
Hi,

On 2020/12/1 16:53, Greg Kroah-Hartman wrote:
> From: Jens Axboe <axboe@kernel.dk>
>
> [ Upstream commit 8d4c3e76e3be11a64df95ddee52e99092d42fc19 ]
>
> If this is attempted by a kthread, then return -EOPNOTSUPP as we don't
> currently support that. Once we can get task_pid_ptr() doing the right
> thing, then this can go away again.

https://www.spinics.net/lists/io-uring/msg05297.html

This patch seems used for io-wq worker which is merged in

v5.5-rc1, why we need this in linux-4.19.y ?


Thanks,

Yang

>
> Signed-off-by: Jens Axboe <axboe@kernel.dk>
> Signed-off-by: Sasha Levin <sashal@kernel.org>
> ---
>   fs/proc/self.c | 7 +++++++
>   1 file changed, 7 insertions(+)
>
> diff --git a/fs/proc/self.c b/fs/proc/self.c
> index cc6d4253399d1..7922edf70ce1a 100644
> --- a/fs/proc/self.c
> +++ b/fs/proc/self.c
> @@ -16,6 +16,13 @@ static const char *proc_self_get_link(struct dentry *dentry,
>   	pid_t tgid = task_tgid_nr_ns(current, ns);
>   	char *name;
>   
> +	/*
> +	 * Not currently supported. Once we can inherit all of struct pid,
> +	 * we can allow this.
> +	 */
> +	if (current->flags & PF_KTHREAD)
> +		return ERR_PTR(-EOPNOTSUPP);
> +
>   	if (!tgid)
>   		return ERR_PTR(-ENOENT);
>   	/* max length of unsigned int in decimal + NULL term */
Jens Axboe March 2, 2021, 5:39 p.m. UTC | #2
On 3/2/21 1:40 AM, Yang Yingliang wrote:
> Hi,

> 

> On 2020/12/1 16:53, Greg Kroah-Hartman wrote:

>> From: Jens Axboe <axboe@kernel.dk>

>>

>> [ Upstream commit 8d4c3e76e3be11a64df95ddee52e99092d42fc19 ]

>>

>> If this is attempted by a kthread, then return -EOPNOTSUPP as we don't

>> currently support that. Once we can get task_pid_ptr() doing the right

>> thing, then this can go away again.

> 

> https://www.spinics.net/lists/io-uring/msg05297.html

> 

> This patch seems used for io-wq worker which is merged in

> 

> v5.5-rc1, why we need this in linux-4.19.y ?


While that's true, it's also a sane safeguard in general.

-- 
Jens Axboe
diff mbox series

Patch

diff --git a/fs/proc/self.c b/fs/proc/self.c
index cc6d4253399d1..7922edf70ce1a 100644
--- a/fs/proc/self.c
+++ b/fs/proc/self.c
@@ -16,6 +16,13 @@  static const char *proc_self_get_link(struct dentry *dentry,
 	pid_t tgid = task_tgid_nr_ns(current, ns);
 	char *name;
 
+	/*
+	 * Not currently supported. Once we can inherit all of struct pid,
+	 * we can allow this.
+	 */
+	if (current->flags & PF_KTHREAD)
+		return ERR_PTR(-EOPNOTSUPP);
+
 	if (!tgid)
 		return ERR_PTR(-ENOENT);
 	/* max length of unsigned int in decimal + NULL term */