svn commit: r367751 - stable/12/sbin/fsck_ffs

Kirk McKusick mckusick at FreeBSD.org
Tue Nov 17 06:04:17 UTC 2020


Author: mckusick
Date: Tue Nov 17 06:04:16 2020
New Revision: 367751
URL: https://svnweb.freebsd.org/changeset/base/367751

Log:
  MFC of 367045.
  
  Avoid improper sign extension in Pass5 inumber checks.
  
  Sponsored by: Netflix

Modified:
  stable/12/sbin/fsck_ffs/pass5.c
Directory Properties:
  stable/12/   (props changed)

Modified: stable/12/sbin/fsck_ffs/pass5.c
==============================================================================
--- stable/12/sbin/fsck_ffs/pass5.c	Tue Nov 17 05:59:55 2020	(r367750)
+++ stable/12/sbin/fsck_ffs/pass5.c	Tue Nov 17 06:04:16 2020	(r367751)
@@ -63,6 +63,7 @@ pass5(void)
 	struct fs *fs = &sblock;
 	ufs2_daddr_t d, dbase, dmax, start;
 	int rewritecg = 0;
+	ino_t inum;
 	struct csum *cs;
 	struct csum_total cstotal;
 	struct inodesc idesc[3];
@@ -236,9 +237,9 @@ pass5(void)
 		}
 		memset(&newcg->cg_frsum[0], 0, sizeof newcg->cg_frsum);
 		memset(cg_inosused(newcg), 0, (size_t)(mapsize));
-		j = fs->fs_ipg * c;
-		for (i = 0; i < inostathead[c].il_numalloced; j++, i++) {
-			switch (inoinfo(j)->ino_state) {
+		inum = fs->fs_ipg * c;
+		for (i = 0; i < inostathead[c].il_numalloced; inum++, i++) {
+			switch (inoinfo(inum)->ino_state) {
 
 			case USTATE:
 				break;
@@ -258,10 +259,10 @@ pass5(void)
 				break;
 
 			default:
-				if (j < (int)UFS_ROOTINO)
+				if (inum < UFS_ROOTINO)
 					break;
-				errx(EEXIT, "BAD STATE %d FOR INODE I=%d",
-				    inoinfo(j)->ino_state, j);
+				errx(EEXIT, "BAD STATE %d FOR INODE I=%ju",
+				    inoinfo(inum)->ino_state, (uintmax_t)inum);
 			}
 		}
 		if (c == 0)


More information about the svn-src-all mailing list