summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>1995-12-16 18:52:08 +0000
committerpeter <peter@FreeBSD.org>1995-12-16 18:52:08 +0000
commitcb28a6515c9ca513fc9a7603c1dc26f744721afa (patch)
tree295c292ac1f49d8e87d4f20c9b06073dc80da36b /sys
parent37c2fb711b793ebdad018c53e41ed34a6cabcf48 (diff)
downloadFreeBSD-src-cb28a6515c9ca513fc9a7603c1dc26f744721afa.zip
FreeBSD-src-cb28a6515c9ca513fc9a7603c1dc26f744721afa.tar.gz
Catch a couple more null devsw dereferences...
Diffstat (limited to 'sys')
-rw-r--r--sys/amd64/amd64/autoconf.c8
-rw-r--r--sys/amd64/amd64/machdep.c6
-rw-r--r--sys/i386/i386/autoconf.c8
-rw-r--r--sys/i386/i386/machdep.c6
4 files changed, 20 insertions, 8 deletions
diff --git a/sys/amd64/amd64/autoconf.c b/sys/amd64/amd64/autoconf.c
index 82d25bd..2e29703 100644
--- a/sys/amd64/amd64/autoconf.c
+++ b/sys/amd64/amd64/autoconf.c
@@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* from: @(#)autoconf.c 7.1 (Berkeley) 5/9/91
- * $Id: autoconf.c,v 1.49 1995/12/13 15:12:13 julian Exp $
+ * $Id: autoconf.c,v 1.50 1995/12/14 23:35:17 bde Exp $
*/
/*
@@ -281,11 +281,13 @@ setdumpdev(dev)
maj = major(dev);
if (maj >= nblkdev)
return (ENXIO);
+ if (bdevsw[maj] == NULL)
+ return (ENXIO); /* XXX is this right? */
if (bdevsw[maj]->d_psize == NULL)
- return (ENXIO); /* XXX should sometimes be ENODEV */
+ return (ENXIO); /* XXX should be ENODEV ? */
psize = bdevsw[maj]->d_psize(dev);
if (psize == -1)
- return (ENXIO); /* XXX should sometimes be ENODEV */
+ return (ENXIO); /* XXX should be ENODEV ? */
newdumplo = psize - Maxmem * NBPG / DEV_BSIZE;
if (newdumplo < 0)
return (ENOSPC);
diff --git a/sys/amd64/amd64/machdep.c b/sys/amd64/amd64/machdep.c
index 39394ed..f95285d 100644
--- a/sys/amd64/amd64/machdep.c
+++ b/sys/amd64/amd64/machdep.c
@@ -35,7 +35,7 @@
* SUCH DAMAGE.
*
* from: @(#)machdep.c 7.4 (Berkeley) 6/3/91
- * $Id: machdep.c,v 1.158 1995/12/13 15:12:23 julian Exp $
+ * $Id: machdep.c,v 1.159 1995/12/14 14:35:34 peter Exp $
*/
#include "npx.h"
@@ -970,6 +970,10 @@ dumpsys()
return;
if ((minor(dumpdev)&07) != 1)
return;
+ if (!(bdevsw[major(dumpdev)]))
+ return;
+ if (!(bdevsw[major(dumpdev)]->d_dump))
+ return;
dumpsize = Maxmem;
printf("\ndumping to dev %lx, offset %ld\n", dumpdev, dumplo);
printf("dump ");
diff --git a/sys/i386/i386/autoconf.c b/sys/i386/i386/autoconf.c
index 82d25bd..2e29703 100644
--- a/sys/i386/i386/autoconf.c
+++ b/sys/i386/i386/autoconf.c
@@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* from: @(#)autoconf.c 7.1 (Berkeley) 5/9/91
- * $Id: autoconf.c,v 1.49 1995/12/13 15:12:13 julian Exp $
+ * $Id: autoconf.c,v 1.50 1995/12/14 23:35:17 bde Exp $
*/
/*
@@ -281,11 +281,13 @@ setdumpdev(dev)
maj = major(dev);
if (maj >= nblkdev)
return (ENXIO);
+ if (bdevsw[maj] == NULL)
+ return (ENXIO); /* XXX is this right? */
if (bdevsw[maj]->d_psize == NULL)
- return (ENXIO); /* XXX should sometimes be ENODEV */
+ return (ENXIO); /* XXX should be ENODEV ? */
psize = bdevsw[maj]->d_psize(dev);
if (psize == -1)
- return (ENXIO); /* XXX should sometimes be ENODEV */
+ return (ENXIO); /* XXX should be ENODEV ? */
newdumplo = psize - Maxmem * NBPG / DEV_BSIZE;
if (newdumplo < 0)
return (ENOSPC);
diff --git a/sys/i386/i386/machdep.c b/sys/i386/i386/machdep.c
index 39394ed..f95285d 100644
--- a/sys/i386/i386/machdep.c
+++ b/sys/i386/i386/machdep.c
@@ -35,7 +35,7 @@
* SUCH DAMAGE.
*
* from: @(#)machdep.c 7.4 (Berkeley) 6/3/91
- * $Id: machdep.c,v 1.158 1995/12/13 15:12:23 julian Exp $
+ * $Id: machdep.c,v 1.159 1995/12/14 14:35:34 peter Exp $
*/
#include "npx.h"
@@ -970,6 +970,10 @@ dumpsys()
return;
if ((minor(dumpdev)&07) != 1)
return;
+ if (!(bdevsw[major(dumpdev)]))
+ return;
+ if (!(bdevsw[major(dumpdev)]->d_dump))
+ return;
dumpsize = Maxmem;
printf("\ndumping to dev %lx, offset %ld\n", dumpdev, dumplo);
printf("dump ");
OpenPOWER on IntegriCloud