diff options
author | Jens Axboe <axboe@kernel.dk> | 2020-11-13 16:47:52 -0700 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2020-12-02 08:48:09 +0100 |
commit | 49d04a6948825b309411d13e97109857e4f76de6 (patch) | |
tree | d3078a07f6012e319bea1378b790c41f378d31c5 | |
parent | e7daa8842205b5a2e7929c82390f7b377d37803b (diff) | |
download | linux-stable-49d04a6948825b309411d13e97109857e4f76de6.tar.gz linux-stable-49d04a6948825b309411d13e97109857e4f76de6.tar.bz2 linux-stable-49d04a6948825b309411d13e97109857e4f76de6.zip |
proc: don't allow async path resolution of /proc/self components
[ 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>
-rw-r--r-- | fs/proc/self.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/fs/proc/self.c b/fs/proc/self.c index cc6d4253399d..7922edf70ce1 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 */ |