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) &
|