summaryrefslogtreecommitdiff
path: root/fs
diff options
context:
space:
mode:
authorJens Axboe <axboe@kernel.dk>2020-11-13 16:47:52 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2020-12-02 08:29:27 +0100
commitebb83fd9dbd29d844c553d28565b5f86e47790e0 (patch)
tree80366136a7b9732d4c04b734ff28eee570900bc1 /fs
parent22aaeaeeccaf8c4344bfc7910d797ac1b169e7e6 (diff)
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>
Diffstat (limited to 'fs')
-rw-r--r--fs/proc/self.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/fs/proc/self.c b/fs/proc/self.c
index 2dcc2558b3aa..dffbe533d53f 100644
--- a/fs/proc/self.c
+++ b/fs/proc/self.c
@@ -24,6 +24,13 @@ static const char *proc_self_follow_link(struct dentry *dentry, void **cookie)
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 */