From 96b7da5f03e8fd1722cb66ef3cb7fcc02d703860 Mon Sep 17 00:00:00 2001 From: Nickolai Zeldovich Date: Fri, 24 Jun 2011 05:26:57 -0400 Subject: [PATCH] do not run past the end of the disk! [ cherry-picked de6075ff0978108daea1d658425bcb37663a98a0 ] Conflicts: fs.c --- fs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs.c b/fs.c index 15a4d35..7c6d904 100644 --- 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.