sanity checks in getblk() and geteblk()
authorKirk McKusick <mckusick@ucbvax.Berkeley.EDU>
Thu, 24 Oct 1985 08:13:44 +0000 (00:13 -0800)
committerKirk McKusick <mckusick@ucbvax.Berkeley.EDU>
Thu, 24 Oct 1985 08:13:44 +0000 (00:13 -0800)
SCCS-vsn: sys/kern/vfs_bio.c 6.8
SCCS-vsn: sys/kern/vfs_cluster.c 6.8

usr/src/sys/kern/vfs_bio.c
usr/src/sys/kern/vfs_cluster.c

index ffabfca..fff0289 100644 (file)
@@ -3,7 +3,7 @@
  * All rights reserved.  The Berkeley software License Agreement
  * specifies the terms and conditions for redistribution.
  *
  * All rights reserved.  The Berkeley software License Agreement
  * specifies the terms and conditions for redistribution.
  *
- *     @(#)vfs_bio.c   6.7 (Berkeley) %G%
+ *     @(#)vfs_bio.c   6.8 (Berkeley) %G%
  */
 
 #include "../machine/pte.h"
  */
 
 #include "../machine/pte.h"
@@ -273,6 +273,8 @@ getblk(dev, blkno, size)
        register struct buf *bp, *dp;
        int s;
 
        register struct buf *bp, *dp;
        int s;
 
+       if (size > MAXBSIZE)
+               panic("getblk: size too big");
        /*
         * To prevent overflow of 32-bit ints when converting block
         * numbers to byte offsets, blknos > 2^32 / DEV_BSIZE are set
        /*
         * To prevent overflow of 32-bit ints when converting block
         * numbers to byte offsets, blknos > 2^32 / DEV_BSIZE are set
@@ -332,6 +334,8 @@ geteblk(size)
 {
        register struct buf *bp, *flist;
 
 {
        register struct buf *bp, *flist;
 
+       if (size > MAXBSIZE)
+               panic("geteblk: size too big");
 loop:
        bp = getnewbuf();
        bp->b_flags |= B_INVAL;
 loop:
        bp = getnewbuf();
        bp->b_flags |= B_INVAL;
index 3c71334..76a6772 100644 (file)
@@ -3,7 +3,7 @@
  * All rights reserved.  The Berkeley software License Agreement
  * specifies the terms and conditions for redistribution.
  *
  * All rights reserved.  The Berkeley software License Agreement
  * specifies the terms and conditions for redistribution.
  *
- *     @(#)vfs_cluster.c       6.7 (Berkeley) %G%
+ *     @(#)vfs_cluster.c       6.8 (Berkeley) %G%
  */
 
 #include "../machine/pte.h"
  */
 
 #include "../machine/pte.h"
@@ -273,6 +273,8 @@ getblk(dev, blkno, size)
        register struct buf *bp, *dp;
        int s;
 
        register struct buf *bp, *dp;
        int s;
 
+       if (size > MAXBSIZE)
+               panic("getblk: size too big");
        /*
         * To prevent overflow of 32-bit ints when converting block
         * numbers to byte offsets, blknos > 2^32 / DEV_BSIZE are set
        /*
         * To prevent overflow of 32-bit ints when converting block
         * numbers to byte offsets, blknos > 2^32 / DEV_BSIZE are set
@@ -332,6 +334,8 @@ geteblk(size)
 {
        register struct buf *bp, *flist;
 
 {
        register struct buf *bp, *flist;
 
+       if (size > MAXBSIZE)
+               panic("geteblk: size too big");
 loop:
        bp = getnewbuf();
        bp->b_flags |= B_INVAL;
 loop:
        bp = getnewbuf();
        bp->b_flags |= B_INVAL;