svn commit: r201712 - stable/6/sbin/fsck_ffs
Xin LI
delphij at FreeBSD.org
Thu Jan 7 01:56:36 UTC 2010
Author: delphij
Date: Thu Jan 7 01:56:35 2010
New Revision: 201712
URL: http://svn.freebsd.org/changeset/base/201712
Log:
MFC r176575:
In pass1(), cap inosused to fs_ipg rather than allowing arbitrary
number read from cylinder group. Chances that we read a smarshed
cylinder group, and we can not 100% trust information it has
supplied. fsck_ffs(8) will crash otherwise for some cases.
PR: bin/138043
Reminded by: mckusick
Modified:
stable/6/sbin/fsck_ffs/pass1.c
Directory Properties:
stable/6/sbin/fsck_ffs/ (props changed)
Modified: stable/6/sbin/fsck_ffs/pass1.c
==============================================================================
--- stable/6/sbin/fsck_ffs/pass1.c Thu Jan 7 01:55:34 2010 (r201711)
+++ stable/6/sbin/fsck_ffs/pass1.c Thu Jan 7 01:56:35 2010 (r201712)
@@ -93,9 +93,11 @@ pass1(void)
inumber = c * sblock.fs_ipg;
setinodebuf(inumber);
getblk(&cgblk, cgtod(&sblock, c), sblock.fs_cgsize);
- if (sblock.fs_magic == FS_UFS2_MAGIC)
+ if (sblock.fs_magic == FS_UFS2_MAGIC) {
inosused = cgrp.cg_initediblk;
- else
+ if (inosused > sblock.fs_ipg)
+ inosused = sblock.fs_ipg;
+ } else
inosused = sblock.fs_ipg;
if (got_siginfo) {
printf("%s: phase 1: cyl group %d of %d (%d%%)\n",
More information about the svn-src-stable-6
mailing list