svn commit: r334980 - in head: . sbin/dump

Warner Losh imp at FreeBSD.org
Mon Jun 11 20:38:34 UTC 2018


Author: imp
Date: Mon Jun 11 20:38:30 2018
New Revision: 334980
URL: https://svnweb.freebsd.org/changeset/base/334980

Log:
  Revert size limits.
  
  The size limits came from a flawed understanding of dump records.
  The real issue was that dump was bogusly interpreting c_count
  sometimes. r334978 fixes that.

Modified:
  head/UPDATING
  head/sbin/dump/dump.8
  head/sbin/dump/main.c

Modified: head/UPDATING
==============================================================================
--- head/UPDATING	Mon Jun 11 20:38:26 2018	(r334979)
+++ head/UPDATING	Mon Jun 11 20:38:30 2018	(r334980)
@@ -32,13 +32,6 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 12.x IS SLOW:
 	"ln -s 'abort:false,junk:false' /etc/malloc.conf".)
 
 
-20180611:
-	A bug in dump has been found where it can incorrectly dump filesystems
-	with more than 512k inodes and produce corrupted dump images. r334968
-	closes the door by not dumping filesystems with more than 512k inodes.
-	While older dumps may 'work' the image they produce may or may not be
-	readable depending on many factors.
-
 20180530:
 	The kernel / userland interface for devinfo changed, so you'll
 	need a new kernel and userland as a pair for it to work (rebuilding

Modified: head/sbin/dump/dump.8
==============================================================================
--- head/sbin/dump/dump.8	Mon Jun 11 20:38:26 2018	(r334979)
+++ head/sbin/dump/dump.8	Mon Jun 11 20:38:30 2018	(r334980)
@@ -566,8 +566,3 @@ This will be fixed in a later version of
 .Fx .
 Presently, it works if you set it setuid (like it used to be), but this
 might constitute a security risk.
-.Pp
-It is not possible to safely dump filesystems that use more than
-524288 inodes.
-.Nm
-refuses to dump any filesystem that has more than 524288 inodes.

Modified: head/sbin/dump/main.c
==============================================================================
--- head/sbin/dump/main.c	Mon Jun 11 20:38:26 2018	(r334979)
+++ head/sbin/dump/main.c	Mon Jun 11 20:38:30 2018	(r334980)
@@ -100,7 +100,7 @@ main(int argc, char *argv[])
 	struct fstab *dt;
 	char *map, *mntpt;
 	int ch, mode, mntflags;
-	int i, ret, anydirskipped, c_count, bflag = 0, Tflag = 0, honorlevel = 1;
+	int i, ret, anydirskipped, bflag = 0, Tflag = 0, honorlevel = 1;
 	int just_estimate = 0;
 	ino_t maxino;
 	char *tmsg;
@@ -452,9 +452,6 @@ main(int argc, char *argv[])
 		quit("TP_BSIZE (%d) is not a power of 2", TP_BSIZE);
 	maxino = sblock->fs_ipg * sblock->fs_ncg;
 	mapsize = roundup(howmany(maxino, CHAR_BIT), TP_BSIZE);
-	c_count = howmany(mapsize * sizeof(char), TP_BSIZE);
-	if (c_count > TP_NINDIR)
-		quit("fs is too large for dump!");
 	usedinomap = (char *)calloc((unsigned) mapsize, sizeof(char));
 	dumpdirmap = (char *)calloc((unsigned) mapsize, sizeof(char));
 	dumpinomap = (char *)calloc((unsigned) mapsize, sizeof(char));


More information about the svn-src-head mailing list