]> Devi Nivas Git - cs3210-lab0.git/commitdiff
do not run past the end of the disk!
authorNickolai Zeldovich <nickolai@csail.mit.edu>
Fri, 24 Jun 2011 09:26:57 +0000 (05:26 -0400)
committerNickolai Zeldovich <nickolai@csail.mit.edu>
Fri, 24 Jun 2011 09:26:57 +0000 (05:26 -0400)
[ cherry-picked de6075ff0978108daea1d658425bcb37663a98a0 ]

Conflicts:

fs.c

fs.c

diff --git a/fs.c b/fs.c
index 15a4d35ff581dc38de8e3f23b87eb12834c86e6e..7c6d90467bc5907dedd255cf14a062b8471e52f7 100644 (file)
--- a/fs.c
+++ b/fs.c
@@ -61,7 +61,7 @@ balloc(uint dev)
   readsb(dev, &sb);
   for(b = 0; b < sb.size; b += BPB){
     bp = bread(dev, BBLOCK(b, sb.ninodes));
-    for(bi = 0; bi < BPB; bi++){
+    for(bi = 0; bi < BPB && bi < (sb.size - b); bi++){
       m = 1 << (bi % 8);
       if((bp->data[bi/8] & m) == 0){  // Is block free?
         bp->data[bi/8] |= m;  // Mark block in use on disk.