svn commit: r201713 - stable/5/sbin/fsck_ffs

Xin LI delphij at FreeBSD.org
Thu Jan 7 01:57:13 UTC 2010


Author: delphij
Date: Thu Jan  7 01:57:13 2010
New Revision: 201713
URL: http://svn.freebsd.org/changeset/base/201713

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/5/sbin/fsck_ffs/pass1.c
Directory Properties:
  stable/5/sbin/fsck_ffs/   (props changed)

Modified: stable/5/sbin/fsck_ffs/pass1.c
==============================================================================
--- stable/5/sbin/fsck_ffs/pass1.c	Thu Jan  7 01:56:35 2010	(r201712)
+++ stable/5/sbin/fsck_ffs/pass1.c	Thu Jan  7 01:57:13 2010	(r201713)
@@ -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-other mailing list