From 9295c1ca712c220aa8e5ae69ed3d287eeb4ea9df Mon Sep 17 00:00:00 2001 From: iedowse Date: Tue, 4 Nov 2003 14:20:14 +0000 Subject: In mapdirs(), do not use the `dp' inode pointer after searchdir() has been called, since it points to a shared inode buffer that may be overwritten. The two cases where `dp' was used incorrectly appear to have been overlooked when "nodump" inheritance was first added in revision 1.12. This is reported to correct propagation of the nodump flag on directories that are larger than one block in size. PR: bin/58912 Submitted by: Volker Paepcke MFC after: 1 week --- sbin/dump/traverse.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'sbin/dump') diff --git a/sbin/dump/traverse.c b/sbin/dump/traverse.c index 0fd10c4..d05319a 100644 --- a/sbin/dump/traverse.c +++ b/sbin/dump/traverse.c @@ -274,8 +274,8 @@ mapdirs(ino_t maxino, long *tapesize) for (ret = 0, i = 0; filesize > 0 && i < NDADDR; i++) { if (DIP(&di, di_db[i]) != 0) ret |= searchdir(ino, DIP(&di, di_db[i]), - (long)sblksize(sblock, DIP(dp, di_size), i), - filesize, tapesize, nodump); + (long)sblksize(sblock, DIP(&di, di_size), + i), filesize, tapesize, nodump); if (ret & HASDUMPEDFILE) filesize = 0; else @@ -289,7 +289,7 @@ mapdirs(ino_t maxino, long *tapesize) } if (ret & HASDUMPEDFILE) { SETINO(ino, dumpinomap); - *tapesize += blockest(dp); + *tapesize += blockest(&di); change = 1; continue; } -- cgit v1.1