From a40b145d3c81a7ae0f1191e528de8e80333001fd Mon Sep 17 00:00:00 2001 From: mckusick Date: Sat, 15 Jul 2000 18:28:36 +0000 Subject: Make a tighter test for valid inode numbers in getnextinode(). --- sbin/fsck/inode.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'sbin/fsck') diff --git a/sbin/fsck/inode.c b/sbin/fsck/inode.c index e241cdb..8b2f14b 100644 --- a/sbin/fsck/inode.c +++ b/sbin/fsck/inode.c @@ -307,7 +307,7 @@ ginode(inumber) * Special purpose version of ginode used to optimize first pass * over all the inodes in numerical order. */ -ino_t nextino, lastinum; +ino_t nextino, lastinum, lastvalidinum; long readcnt, readpercg, fullcnt, inobufsize, partialcnt, partialsize; struct dinode *inodebuf; @@ -319,7 +319,7 @@ getnextinode(inumber) ufs_daddr_t dblk; static struct dinode *dp; - if (inumber != nextino++ || inumber > maxino) + if (inumber != nextino++ || inumber > lastvalidinum) errx(EEXIT, "bad inode number %d to nextinode", inumber); if (inumber >= lastinum) { readcnt++; @@ -348,6 +348,7 @@ setinodebuf(inum) if (inum % sblock.fs_ipg != 0) errx(EEXIT, "bad inode number %d to setinodebuf", inum); + lastvalidinum = inum + sblock.fs_ipg - 1; startinum = 0; nextino = inum; lastinum = inum; -- cgit v1.1