Lines Matching refs:attr_rec

255 	ATTR_RECORD *attr_rec;
277 attr_rec = (ATTR_RECORD *)(buf + attrs_offset);
280 while ((u8*)attr_rec<=buf+size_of_file_record-4) {
282 //printf("Attr type: 0x%x.\n", attr_rec->type);
284 if (attr_rec->type==AT_END) {
285 check_failed("Attribute 0x%x not found in file record at offset %lld (0x%llx).\n", (int)le32_to_cpu(attr_rec->type),
290 if ((u8*)attr_rec>buf+size_of_file_record-8) {
294 (int)le32_to_cpu(attr_rec->type));
298 length = le32_to_cpu(attr_rec->length);
301 if ((u8*)attr_rec+length >= buf+size_of_file_record) {
303 (int)le32_to_cpu(attr_rec->type),
310 if (attr_rec->type==attr_type) {
317 return ntfs_mapping_pairs_decompress(rawvol, attr_rec, NULL);
320 attr_rec = (ATTR_RECORD*)((u8*)attr_rec+length);
408 * @attr_rec: The attribute record to check
420 static ATTR_REC *check_attr_record(ATTR_REC *attr_rec, MFT_RECORD *mft_rec,
425 u32 attr_type = le32_to_cpu(attr_rec->type);
426 u32 length = le32_to_cpu(attr_rec->length);
429 if ((u8*)attr_rec+length >= ((u8*)mft_rec)+buflen) {
451 if ((u8*)attr_rec == ((u8*)mft_rec) + attrs_offset) {
457 //assert_u32_equal(attr_rec->instance, 0,
463 //assert_u32_noteq(attr_rec->instance, 0,
468 // current_mft_record, (int)attr_type, (int)le16_to_cpu(attr_rec->instance), (int)mft_rec->base_mft_record);
472 if (attr_rec->flags & ~(const_cpu_to_le16(0xc0ff))) {
475 (int)le16_to_cpu(attr_rec->flags));
478 if (attr_rec->non_resident>1) {
481 (int)attr_type, (int)attr_rec->non_resident);
485 name_offset = le16_to_cpu(attr_rec->name_offset);
494 if (attr_rec->non_resident) {
504 if (attr_rec->compression_unit && (length<72)) {
529 u16 value_offset = le16_to_cpu(attr_rec->value_offset);
530 u32 value_length = le32_to_cpu(attr_rec->value_length);
532 if (attr_rec->name_length) {
537 attr_rec->name_length)
542 //assert_u32_equal(le32_to_cpu(attr_rec->value_length)+
552 if (attr_rec->resident_flags>0x01) {
553 check_failed("Unknown resident flags (0x%x) for attribute 0x%x.\n", (int)attr_rec->resident_flags, (int)attr_type);
554 } else if (attr_rec->resident_flags && (attr_type!=0x30)) {
559 assert_u32_equal(attr_rec->reservedR, 0, "Resident Reserved");
566 return (ATTR_REC *)(((u8 *)attr_rec) + length);
584 ATTR_REC *attr_rec;
629 attr_rec = (ATTR_REC *)(buffer + attrs_offset);
630 while ((u8*)attr_rec<=buffer+buflen-4) {
633 if (attr_rec->type==AT_END) {
637 if ((u8*)attr_rec>buffer+buflen-8) {
641 (int)le32_to_cpu(attr_rec->type));
645 attr_rec = check_attr_record(attr_rec, mft_rec, buflen);
646 if (!attr_rec)