提交 96b7da5f 创建 作者: Nickolai Zeldovich's avatar Nickolai Zeldovich

do not run past the end of the disk!

[ cherry-picked de6075ff ] Conflicts: fs.c
上级 f70ef994
...@@ -61,7 +61,7 @@ balloc(uint dev) ...@@ -61,7 +61,7 @@ balloc(uint dev)
readsb(dev, &sb); readsb(dev, &sb);
for(b = 0; b < sb.size; b += BPB){ for(b = 0; b < sb.size; b += BPB){
bp = bread(dev, BBLOCK(b, sb.ninodes)); 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); m = 1 << (bi % 8);
if((bp->data[bi/8] & m) == 0){ // Is block free? if((bp->data[bi/8] & m) == 0){ // Is block free?
bp->data[bi/8] |= m; // Mark block in use on disk. bp->data[bi/8] |= m; // Mark block in use on disk.
......
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论