summaryrefslogtreecommitdiffstats
path: root/sys/miscfs/kernfs/kernfs_vfsops.c
diff options
context:
space:
mode:
authordg <dg@FreeBSD.org>1995-05-25 01:35:24 +0000
committerdg <dg@FreeBSD.org>1995-05-25 01:35:24 +0000
commita4ec59246f1ae1566f39b2ba1183f1f7d162cb46 (patch)
treed8e24731030c03fe1ed42d7824786e43f50fbeec /sys/miscfs/kernfs/kernfs_vfsops.c
parente28ba9e18807abc8a6fc5b05e74a2be1b87ee5fe (diff)
downloadFreeBSD-src-a4ec59246f1ae1566f39b2ba1183f1f7d162cb46.zip
FreeBSD-src-a4ec59246f1ae1566f39b2ba1183f1f7d162cb46.tar.gz
Fixed panic that resulted from mmaping files in kernfs and procfs. A
regular user could panic the machine with a simple "tail /proc/curproc/mem" command. The problem was twofold: both kernfs and procfs didn't fill in the mnt_stat statfs struct (which would later lead to an integer divide fault in the vnode pager), and kernfs bogusly paniced if a bmap was attempted. Reviewed by: John Dyson
Diffstat (limited to 'sys/miscfs/kernfs/kernfs_vfsops.c')
-rw-r--r--sys/miscfs/kernfs/kernfs_vfsops.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/miscfs/kernfs/kernfs_vfsops.c b/sys/miscfs/kernfs/kernfs_vfsops.c
index 4c54975..e6f97c7 100644
--- a/sys/miscfs/kernfs/kernfs_vfsops.c
+++ b/sys/miscfs/kernfs/kernfs_vfsops.c
@@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* @(#)kernfs_vfsops.c 8.4 (Berkeley) 1/21/94
- * $Id: kernfs_vfsops.c,v 1.7 1995/03/16 18:13:23 bde Exp $
+ * $Id: kernfs_vfsops.c,v 1.8 1995/03/16 20:23:38 wollman Exp $
*/
/*
@@ -57,6 +57,8 @@
struct vnode *rrootvp;
+int kernfs_statfs __P((struct mount *, struct statfs *, struct proc *));
+
/*
* Create a vnode for a character device.
*/
@@ -160,6 +162,7 @@ kernfs_mount(mp, path, data, ndp, p)
bzero(mp->mnt_stat.f_mntonname + size, MNAMELEN - size);
bzero(mp->mnt_stat.f_mntfromname, MNAMELEN);
bcopy("kernfs", mp->mnt_stat.f_mntfromname, sizeof("kernfs"));
+ (void)kernfs_statfs(mp, &mp->mnt_stat, p);
#ifdef KERNFS_DIAGNOSTIC
printf("kernfs_mount: at %s\n", mp->mnt_stat.f_mntonname);
#endif
OpenPOWER on IntegriCloud