summaryrefslogtreecommitdiffstats
path: root/sys/fs
diff options
context:
space:
mode:
authorbde <bde@FreeBSD.org>1998-10-25 19:26:18 +0000
committerbde <bde@FreeBSD.org>1998-10-25 19:26:18 +0000
commit558766fa9415f59d49437a086cc1260d95828a0b (patch)
tree05be5c55f69047b10ab0de43bf5c0ef6624703eb /sys/fs
parent9fafc4765300a0de262e82faff274b179b1c3772 (diff)
downloadFreeBSD-src-558766fa9415f59d49437a086cc1260d95828a0b.zip
FreeBSD-src-558766fa9415f59d49437a086cc1260d95828a0b.tar.gz
Don't follow null bdevsw pointers. The `major(dev) < nblkdev' test rotted
when bdevsw[] became sparse. We still depend on magic to avoid having to check that (v_rdev) device numbers in vnodes are not NODEV.
Diffstat (limited to 'sys/fs')
-rw-r--r--sys/fs/cd9660/cd9660_vfsops.c5
-rw-r--r--sys/fs/msdosfs/msdosfs_vfsops.c6
2 files changed, 7 insertions, 4 deletions
diff --git a/sys/fs/cd9660/cd9660_vfsops.c b/sys/fs/cd9660/cd9660_vfsops.c
index fb877ca..69e3ebd 100644
--- a/sys/fs/cd9660/cd9660_vfsops.c
+++ b/sys/fs/cd9660/cd9660_vfsops.c
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* @(#)cd9660_vfsops.c 8.18 (Berkeley) 5/22/95
- * $Id: cd9660_vfsops.c,v 1.43 1998/09/07 13:17:00 bde Exp $
+ * $Id: cd9660_vfsops.c,v 1.44 1998/09/14 19:56:39 sos Exp $
*/
#include <sys/param.h>
@@ -229,7 +229,8 @@ cd9660_mount(mp, path, data, ndp, p)
vrele(devvp);
return ENOTBLK;
}
- if (major(devvp->v_rdev) >= nblkdev) {
+ if (major(devvp->v_rdev) >= nblkdev ||
+ bdevsw[major(devvp->v_rdev)] == NULL) {
vrele(devvp);
return ENXIO;
}
diff --git a/sys/fs/msdosfs/msdosfs_vfsops.c b/sys/fs/msdosfs/msdosfs_vfsops.c
index 42798d7..cf8f905 100644
--- a/sys/fs/msdosfs/msdosfs_vfsops.c
+++ b/sys/fs/msdosfs/msdosfs_vfsops.c
@@ -1,4 +1,4 @@
-/* $Id: msdosfs_vfsops.c,v 1.35 1998/05/06 05:29:38 msmith Exp $ */
+/* $Id: msdosfs_vfsops.c,v 1.36 1998/09/07 13:17:02 bde Exp $ */
/* $NetBSD: msdosfs_vfsops.c,v 1.51 1997/11/17 15:36:58 ws Exp $ */
/*-
@@ -50,6 +50,7 @@
#include <sys/param.h>
#include <sys/systm.h>
+#include <sys/conf.h>
#include <sys/namei.h>
#include <sys/proc.h>
#include <sys/kernel.h>
@@ -297,7 +298,8 @@ msdosfs_mount(mp, path, data, ndp, p)
vrele(devvp);
return (ENOTBLK);
}
- if (major(devvp->v_rdev) >= nblkdev) {
+ if (major(devvp->v_rdev) >= nblkdev ||
+ bdevsw[major(devvp->v_rdev)] == NULL) {
vrele(devvp);
return (ENXIO);
}
OpenPOWER on IntegriCloud