Sophie

Sophie

distrib > Fedora > 13 > i386 > media > updates-src > by-pkgid > 985d2fd5efc52f6f0bb6a204f50a8e7b > files > 4

dump-0.4-0.6.b42.fc13.src.rpm

--- a/dump/traverse.c
+++ b/dump/traverse.c
@@ -833,6 +833,8 @@ dump_xattr(dump_ino_t ino, struct dinode *dp) {
 			spcl.c_flags |= DR_EXTATTRIBUTES;
 			spcl.c_extattributes = EXT_XATTR;
 			spcl.c_count = howmany(EXT2_INODE_SIZE(fs->super), TP_BSIZE);
+			for (i = 0; i < spcl.c_count; i++)
+				spcl.c_addr[i] = 1;
 			writeheader(ino);
 			for (i = 0, cp = xattr; i < spcl.c_count; i++, cp += TP_BSIZE)
 				writerec(cp, 0);
--- a/restore/tape.c
+++ b/restore/tape.c
@@ -1238,12 +1238,20 @@ readxattr(char *buffer)
 		skipfile();
 		return (FAIL);
 	}
-	
+
 	memset(xattrbuf, 0, XATTR_MAXSIZE);
 	xattrlen = 0;
 
+	/*
+	 * ugly hack: cope with invalid spcl.c_addr[] records written by
+	 * old versions of dump.
+	 */
+	readmapflag = 1;
+
 	getfile(xtrxattr, xtrnull);
 
+	readmapflag = 0;
+
 	memcpy(buffer, xattrbuf, XATTR_MAXSIZE);
 
 	return (GOOD);