| Changes by: szaka
Update of /cvsroot/linux-ntfs/ntfsprogs/ntfsprogs
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16815/ntfsprogs
Modified Files:
	ntfsinfo.c 
Log Message:
Improved dumping SDS entries: stop at bogus values instead of crashing and 
don't stop at empty entries
Index: ntfsinfo.c
===================================================================
RCS file: /cvsroot/linux-ntfs/ntfsprogs/ntfsprogs/ntfsinfo.c,v
retrieving revision 1.103
retrieving revision 1.104
diff -u -p -r1.103 -r1.104
--- ntfsinfo.c	14 Jan 2006 00:54:52 -0000	1.103
+++ ntfsinfo.c	29 Jan 2006 01:24:24 -0000	1.104
@@ -1110,7 +1110,15 @@ static void ntfs_dump_sds(ATTR_RECORD *a
 	
 	sd = sds;
 	
-	while (sd->length && sd->length != 32 && sd->hash) {
+	/*
+	 * FIXME: The right way is based on the indexes, so we couldn't
+	 * miss real entries. For now, dump until it makes sense.
+	 */
+	while (sd->length && sd->hash && 
+	       le64_to_cpu(sd->offset) < (u64)na->data_size &&
+	       le32_to_cpu(sd->length) < (u64)na->data_size &&
+	       le64_to_cpu(sd->offset) + 
+			le32_to_cpu(sd->length) < (u64)na->data_size) {
 		ntfs_dump_sds_entry(sd);
 		sd = (SECURITY_DESCRIPTOR_HEADER *)((char *)sd +
 				(cpu_to_le32(sd->length + 0x0F) &
 |