Changes by: flatcap
Update of /cvsroot/linux-ntfs/linux-ntfs/ntfstools
In directory usw-pr-cvs1:/tmp/cvs-serv18726
Modified Files:
ntfsundelete.c
Log Message:
should now be endian-safe
Index: ntfsundelete.c
===================================================================
RCS file: /cvsroot/linux-ntfs/linux-ntfs/ntfstools/ntfsundelete.c,v
retrieving revision 1.19
retrieving revision 1.20
diff -U2 -r1.19 -r1.20
--- ntfsundelete.c 17 Jul 2002 23:41:19 -0000 1.19
+++ ntfsundelete.c 18 Jul 2002 02:44:32 -0000 1.20
@@ -193,5 +193,5 @@
int length, i, j;
- if (!pattern)
+ if (!pattern || !regex)
return 0;
@@ -676,6 +676,4 @@
return;
- free (file->mft);
-
list_for_each_safe (item, tmp, &file->name) { /* List of filenames */
struct filename *f = list_entry (item, struct filename, list);
@@ -696,4 +694,5 @@
}
+ free (file->mft);
free (file);
}
@@ -814,4 +813,5 @@
while ((rec = find_attribute (AT_FILE_NAME, ctx))) {
+ /* We know this will always be resident. */
attr = (FILE_NAME_ATTR *) ((char *) rec + le16_to_cpu (rec->value_offset));
@@ -826,12 +826,12 @@
name->uname_len = attr->file_name_length;
name->name_space = attr->file_name_type;
- name->size_alloc = attr->allocated_size;
- name->size_data = attr->data_size;
+ name->size_alloc = sle64_to_cpu (attr->allocated_size);
+ name->size_data = sle64_to_cpu (attr->data_size);
name->flags = attr->file_attributes;
- name->date_c = ntfs2utc (attr->creation_time);
- name->date_a = ntfs2utc (attr->last_data_change_time);
- name->date_m = ntfs2utc (attr->last_mft_change_time);
- name->date_r = ntfs2utc (attr->last_access_time);
+ name->date_c = ntfs2utc (sle64_to_cpu (attr->creation_time));
+ name->date_a = ntfs2utc (sle64_to_cpu (attr->last_data_change_time));
+ name->date_m = ntfs2utc (sle64_to_cpu (attr->last_mft_change_time));
+ name->date_r = ntfs2utc (sle64_to_cpu (attr->last_access_time));
file->date = max (file->date, name->date_c);
@@ -845,7 +845,7 @@
}
- if (attr->file_name_type < space) {
+ if (name->name_space < space) {
file->pref_name = name->name;
- space = attr->file_name_type;
+ space = name->name_space;
}
@@ -904,5 +904,5 @@
if (rec->name_length) {
- data->uname = (uchar_t *) ((char *) rec + rec->name_offset);
+ data->uname = (uchar_t *) ((char *) rec + le16_to_cpu (rec->name_offset));
data->uname_len = rec->name_length;
@@ -914,11 +914,11 @@
if (data->resident) {
- data->size_data = rec->value_length;
- data->data = ((char*) (rec)) + rec->value_offset;
+ data->size_data = le32_to_cpu (rec->value_length);
+ data->data = ((char*) (rec)) + le16_to_cpu (rec->value_offset);
} else {
- data->size_alloc = rec->allocated_size;
- data->size_data = rec->data_size;
- data->size_init = rec->initialized_size;
- data->size_vcn = rec->highest_vcn + 1;
+ data->size_alloc = sle64_to_cpu (rec->allocated_size);
+ data->size_data = sle64_to_cpu (rec->data_size);
+ data->size_init = sle64_to_cpu (rec->initialized_size);
+ data->size_vcn = sle64_to_cpu (rec->highest_vcn) + 1;
}
@@ -1004,5 +1004,5 @@
STANDARD_INFORMATION *si;
si = (STANDARD_INFORMATION *) ((char *) attr10 + le16_to_cpu (attr10->value_offset));
- file->date = max (file->date, ntfs2utc (si->last_data_change_time));
+ file->date = max (file->date, ntfs2utc (sle64_to_cpu (si->last_data_change_time)));
}
|