Module Name:    src
Committed By:   dholland
Date:           Sat Aug 29 05:33:20 UTC 2015

Modified Files:
        src/usr.sbin/dumplfs: dumplfs.c

Log Message:
Bypass the ifile's double indirect block if the ifile size in blocks
is less than or equal to NDADDR + NINDIR, the number of blocks mapped
without getting to the double indirect block.

The code here was instead using NINDIR * ifpb (ifile entries per
block); this gives the number of ifile entries the indirect block can
map, but that isn't a useful number.

Caught by mlelstv.


To generate a diff of this commit:
cvs rdiff -u -r1.54 -r1.55 src/usr.sbin/dumplfs/dumplfs.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/usr.sbin/dumplfs/dumplfs.c
diff -u src/usr.sbin/dumplfs/dumplfs.c:1.54 src/usr.sbin/dumplfs/dumplfs.c:1.55
--- src/usr.sbin/dumplfs/dumplfs.c:1.54	Wed Aug 12 18:28:01 2015
+++ src/usr.sbin/dumplfs/dumplfs.c	Sat Aug 29 05:33:20 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: dumplfs.c,v 1.54 2015/08/12 18:28:01 dholland Exp $	*/
+/*	$NetBSD: dumplfs.c,v 1.55 2015/08/29 05:33:20 dholland Exp $	*/
 
 /*-
  * Copyright (c) 1991, 1993
@@ -40,7 +40,7 @@ __COPYRIGHT("@(#) Copyright (c) 1991, 19
 #if 0
 static char sccsid[] = "@(#)dumplfs.c	8.5 (Berkeley) 5/24/95";
 #else
-__RCSID("$NetBSD: dumplfs.c,v 1.54 2015/08/12 18:28:01 dholland Exp $");
+__RCSID("$NetBSD: dumplfs.c,v 1.55 2015/08/29 05:33:20 dholland Exp $");
 #endif
 #endif /* not lint */
 
@@ -371,7 +371,7 @@ dump_ifile(int fd, struct lfs *lfsp, int
 			inum = dump_ipage_ifile(lfsp, inum, ipage, lfs_sb_getifpb(lfsp));
 	}
 
-	if (nblocks <= lfs_sb_getnindir(lfsp) * lfs_sb_getifpb(lfsp))
+	if (nblocks <= ULFS_NDADDR + lfs_sb_getnindir(lfsp))
 		goto e1;
 
 	/* Get the double indirect block */

Reply via email to