@@ -66,17 +66,17 @@ _validate_index_file (const char *filename,
66
66
goto validation_fail ;
67
67
}
68
68
69
- copy_field (& ver , VERSION_OFFSET , KEPT_ENTRY_OFFSET );
69
+ copy_field (ver , buf , VERSION_OFFSET , KEPT_ENTRY_OFFSET );
70
70
ver = GUINT32_FROM_LE (ver );
71
71
72
72
// total_entry only meaningful for 95 and NT4, on other versions
73
73
// it's junk memory data, don't bother copying
74
74
if ( ( ver == VERSION_NT4 ) || ( ver == VERSION_WIN95 ) ) {
75
- copy_field (& meta -> total_entry , TOTAL_ENTRY_OFFSET , RECORD_SIZE_OFFSET );
75
+ copy_field (meta -> total_entry , buf , TOTAL_ENTRY_OFFSET , RECORD_SIZE_OFFSET );
76
76
meta -> total_entry = GUINT32_FROM_LE (meta -> total_entry );
77
77
}
78
78
79
- copy_field (& meta -> recordsize , RECORD_SIZE_OFFSET , FILESIZE_SUM_OFFSET );
79
+ copy_field (meta -> recordsize , buf , RECORD_SIZE_OFFSET , FILESIZE_SUM_OFFSET );
80
80
meta -> recordsize = GUINT32_FROM_LE (meta -> recordsize );
81
81
82
82
g_free (buf );
@@ -150,15 +150,16 @@ _populate_record_data (void *buf,
150
150
151
151
// Verbatim path in ANSI code page
152
152
record -> raw_legacy_path = g_malloc0 (RECORD_INDEX_OFFSET - LEGACY_FILENAME_OFFSET );
153
- copy_field (record -> raw_legacy_path , LEGACY_FILENAME_OFFSET , RECORD_INDEX_OFFSET );
153
+ copy_field (* (record -> raw_legacy_path ), buf ,
154
+ LEGACY_FILENAME_OFFSET , RECORD_INDEX_OFFSET );
154
155
155
156
/* Index number associated with the record */
156
- copy_field (& record -> index_n , RECORD_INDEX_OFFSET , DRIVE_LETTER_OFFSET );
157
+ copy_field (record -> index_n , buf , RECORD_INDEX_OFFSET , DRIVE_LETTER_OFFSET );
157
158
record -> index_n = GUINT32_FROM_LE (record -> index_n );
158
159
g_debug ("index=%u" , record -> index_n );
159
160
160
161
/* Number representing drive letter, 'A:' = 0, etc */
161
- copy_field (& drivenum , DRIVE_LETTER_OFFSET , FILETIME_OFFSET );
162
+ copy_field (drivenum , buf , DRIVE_LETTER_OFFSET , FILETIME_OFFSET );
162
163
drivenum = GUINT32_FROM_LE (drivenum );
163
164
g_debug ("drive=%u" , drivenum );
164
165
if (drivenum >= sizeof (driveletters ) - 1 ) {
@@ -179,13 +180,14 @@ _populate_record_data (void *buf,
179
180
}
180
181
181
182
/* File deletion time */
182
- copy_field (& record -> winfiletime , FILETIME_OFFSET , FILESIZE_OFFSET );
183
+ copy_field (record -> winfiletime , buf , FILETIME_OFFSET , FILESIZE_OFFSET );
183
184
record -> winfiletime = GINT64_FROM_LE (record -> winfiletime );
184
185
record -> deltime = win_filetime_to_gdatetime (record -> winfiletime );
185
186
186
187
/* File size or occupied cluster size */
187
188
/* BEWARE! This is 32bit data casted to 64bit struct member */
188
- copy_field (& record -> filesize , FILESIZE_OFFSET , UNICODE_FILENAME_OFFSET );
189
+ copy_field (record -> filesize , buf ,
190
+ FILESIZE_OFFSET , UNICODE_FILENAME_OFFSET );
189
191
record -> filesize = GUINT64_FROM_LE (record -> filesize );
190
192
g_debug ("filesize=%" PRIu64 , record -> filesize );
191
193
@@ -210,7 +212,8 @@ _populate_record_data (void *buf,
210
212
211
213
uni_buf_sz = UNICODE_RECORD_SIZE - UNICODE_FILENAME_OFFSET ;
212
214
record -> raw_uni_path = g_malloc (uni_buf_sz );
213
- copy_field (record -> raw_uni_path , UNICODE_FILENAME_OFFSET , UNICODE_RECORD_SIZE );
215
+ copy_field (* (record -> raw_uni_path ), buf ,
216
+ UNICODE_FILENAME_OFFSET , UNICODE_RECORD_SIZE );
214
217
null_terminator_offset = ucs2_strnlen (
215
218
record -> raw_uni_path , WIN_PATH_MAX ) * sizeof (gunichar2 );
216
219
0 commit comments