Page MenuHomeFreeBSD

D54214.1787395861.diff
No OneTemporary

Size
1 KB
Referenced Files
None
Subscribers
None

D54214.1787395861.diff

diff --git a/sys/kern/kern_jail.c b/sys/kern/kern_jail.c
--- a/sys/kern/kern_jail.c
+++ b/sys/kern/kern_jail.c
@@ -4117,11 +4117,14 @@
if (pr->pr_enforce_statfs == 0)
return;
if (prison_canseemount(cred, mp) != 0) {
+ bzero(&sp->f_fsid, sizeof(sp->f_fsid));
bzero(sp->f_mntonname, sizeof(sp->f_mntonname));
strlcpy(sp->f_mntonname, "[restricted]",
sizeof(sp->f_mntonname));
return;
}
+ if (pr->pr_enforce_statfs > 1)
+ bzero(&sp->f_fsid, sizeof(sp->f_fsid));
if (pr->pr_root->v_mount == mp) {
/*
* Clear current buffer data, so we are sure nothing from
diff --git a/sys/kern/vfs_syscalls.c b/sys/kern/vfs_syscalls.c
--- a/sys/kern/vfs_syscalls.c
+++ b/sys/kern/vfs_syscalls.c
@@ -290,10 +290,8 @@
error = VFS_STATFS(mp, buf);
if (error != 0)
goto out;
- if (priv_check_cred_vfs_generation(td->td_ucred)) {
- buf->f_fsid.val[0] = buf->f_fsid.val[1] = 0;
+ if (priv_check_cred_vfs_generation(td->td_ucred))
prison_enforce_statfs(td->td_ucred, mp, buf);
- }
out:
vfs_unbusy(mp);
return (error);
@@ -545,7 +543,6 @@
sptmp = malloc(sizeof(struct statfs), M_STATFS,
M_WAITOK);
*sptmp = *sp;
- sptmp->f_fsid.val[0] = sptmp->f_fsid.val[1] = 0;
prison_enforce_statfs(td->td_ucred, mp, sptmp);
sp = sptmp;
} else

File Metadata

Mime Type
text/plain
Expires
Sat, Aug 22, 10:51 AM (6 h, 1 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29451862
Default Alt Text
D54214.1787395861.diff (1 KB)

Event Timeline