| From a518d885566b5fb55bd87501c7493448edd90a02 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Fri, 13 Nov 2020 16:47:52 -0700 |
| Subject: proc: don't allow async path resolution of /proc/self components |
| |
| 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(+) |
| |
| diff --git a/fs/proc/self.c b/fs/proc/self.c |
| index c8bbc1c84a39a..f6e2e3fb8a226 100644 |
| --- a/fs/proc/self.c |
| +++ b/fs/proc/self.c |
| @@ -26,6 +26,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); |
| /* 11 for max length of signed int in decimal + NULL term */ |
| -- |
| 2.27.0 |
| |