summaryrefslogtreecommitdiffstats
path: root/sys/kern/vfs_subr.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/kern/vfs_subr.c')
-rw-r--r--sys/kern/vfs_subr.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c
index 7e56575..a542c7c 100644
--- a/sys/kern/vfs_subr.c
+++ b/sys/kern/vfs_subr.c
@@ -3960,12 +3960,18 @@ sysctl_vfs_ctl(SYSCTL_HANDLER_ARGS)
error = SYSCTL_IN(req, &vc, sizeof(vc));
if (error)
return (error);
-
+ if (vc.vc_vers != VFS_CTL_VERS1)
+ return (EINVAL);
mp = vfs_getvfs(&vc.vc_fsid);
if (mp == NULL)
return (ENOENT);
+ /* ensure that a specific sysctl goes to the right filesystem. */
+ if (strcmp(vc.vc_fstypename, "*") != 0 &&
+ strcmp(vc.vc_fstypename, mp->mnt_vfc->vfc_name) != 0) {
+ return (EINVAL);
+ }
VCTLTOREQ(&vc, req);
- return (VFS_SYSCTL(mp, req));
+ return (VFS_SYSCTL(mp, vc.vc_op, req));
}
SYSCTL_PROC(_vfs, OID_AUTO, ctl, CTLFLAG_RD,
OpenPOWER on IntegriCloud