From 134ce0f9cce257b3a932d20b2d52d026c70498c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dag-Erling=20Sm=C3=B8rgrav?= Date: Tue, 19 Aug 2003 10:26:41 +0000 Subject: [PATCH] Add pfs_visible() checks to pfs_getattr() and pfs_getextattr(). This also fixes pfs_access() since it relies on VOP_GETATTR() which will call pfs_getattr(). This prevents jailed processes from discovering the existence, start time and ownership of processes outside the jail. PR: kern/48156 --- sys/fs/pseudofs/pseudofs_vnops.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/sys/fs/pseudofs/pseudofs_vnops.c b/sys/fs/pseudofs/pseudofs_vnops.c index 77109346c0b8..0ac6dbca2e7e 100644 --- a/sys/fs/pseudofs/pseudofs_vnops.c +++ b/sys/fs/pseudofs/pseudofs_vnops.c @@ -163,6 +163,9 @@ pfs_getattr(struct vop_getattr_args *va) PFS_TRACE((pn->pn_name)); + if (!pfs_visible(curthread, pn, pvd->pvd_pid)) + PFS_RETURN (ENOENT); + VATTR_NULL(vap); vap->va_type = vn->v_type; vap->va_fileid = pn->pn_fileno; @@ -263,6 +266,9 @@ pfs_getextattr(struct vop_getextattr_args *va) PFS_TRACE((pd->pn_name)); + if (!pfs_visible(curthread, pn, pvd->pvd_pid)) + PFS_RETURN (ENOENT); + if (pn->pn_getextattr == NULL) PFS_RETURN (EOPNOTSUPP);