} else {
len = strnlen(buf, fs->blocksize);
}
- if (len == fs->blocksize)
+ if (len >= fs->blocksize)
return 0;
- } else if (inode->i_flags & EXT4_INLINE_DATA_FL) {
- char *inline_buf = NULL;
- size_t inline_sz = 0;
-
- if (ext2fs_inline_data_size(fs, ino, &inline_sz))
- return 0;
- if (inode->i_size != inline_sz)
- return 0;
- if (ext2fs_get_mem(inline_sz + 1, &inline_buf))
- return 0;
- i = 0;
- if (ext2fs_inline_data_get(fs, ino, inode, inline_buf, NULL))
- goto exit_inline;
- inline_buf[inline_sz] = 0;
- len = strnlen(inline_buf, inline_sz);
- if (len != inline_sz)
- goto exit_inline;
- i = 1;
-exit_inline:
- ext2fs_free_mem(&inline_buf);
- return i;
- } else {
- if (inode->i_size >= sizeof(inode->i_block))
- return 0;
-
- len = strnlen((char *)inode->i_block, sizeof(inode->i_block));
- if (len == sizeof(inode->i_block))
- return 0;
}
if (len != inode->i_size)
if ((inode->i_flags & EXT4_ENCRYPT_FL) == 0)
debugfs -R "stat /l_30" test.img
Inode: 12 Type: symlink Mode: 0777 Flags: 0x0
Generation: 0 Version: 0x00000000:00000000
- User: 0 Group: 0 Project: 0 Size: 31
+ User: 0 Group: 0 Project: 0 Size: 30
-File ACL: 0 Directory ACL: 0
+File ACL: 0
Links: 1 Blockcount: 0
Fragment: Address: 0 Number: 0 Size: 0
Size of extra inode fields: 32
- Fast link dest: "/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
- debugfs -R "stat /l_70" test.img
+ Fast link dest: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
+ debugfs -R "stat /l_60" test.img
Inode: 13 Type: symlink Mode: 0777 Flags: 0x10000000
Generation: 0 Version: 0x00000000:00000000
- User: 0 Group: 0 Project: 0 Size: 71
+ User: 0 Group: 0 Project: 0 Size: 60
-File ACL: 0 Directory ACL: 0
++File ACL: 0
+ Links: 1 Blockcount: 0
+ Fragment: Address: 0 Number: 0 Size: 0
+ Size of extra inode fields: 32
+ Extended attributes:
+ system.data (0)
+ Fast link dest: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
+ debugfs -R "stat /l_70" test.img
+ Inode: 14 Type: symlink Mode: 0777 Flags: 0x10000000
+ Generation: 0 Version: 0x00000000:00000000
+ User: 0 Group: 0 Project: 0 Size: 70
-File ACL: 0 Directory ACL: 0
+File ACL: 0
Links: 1 Blockcount: 0
Fragment: Address: 0 Number: 0 Size: 0
Size of extra inode fields: 32
Extended attributes:
- system.data (11)
- Fast link dest: "/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
+ system.data (10)
+ Fast link dest: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
debugfs -R "stat /l_500" test.img
- Inode: 14 Type: symlink Mode: 0777 Flags: 0x80000
+ Inode: 15 Type: symlink Mode: 0777 Flags: 0x80000
Generation: 0 Version: 0x00000000:00000000
- User: 0 Group: 0 Project: 0 Size: 501
+ User: 0 Group: 0 Project: 0 Size: 500
-File ACL: 0 Directory ACL: 0
+File ACL: 0
Links: 1 Blockcount: 2
Fragment: Address: 0 Number: 0 Size: 0
Size of extra inode fields: 32
EXTENTS:
(0):153
debugfs -R "stat /l_1023" test.img
- Inode: 15 Type: symlink Mode: 0777 Flags: 0x80000
+ Inode: 16 Type: symlink Mode: 0777 Flags: 0x80000
Generation: 0 Version: 0x00000000:00000000
- User: 0 Group: 0 Project: 0 Size: 1024
+ User: 0 Group: 0 Project: 0 Size: 1023
-File ACL: 0 Directory ACL: 0
+File ACL: 0
Links: 1 Blockcount: 2
Fragment: Address: 0 Number: 0 Size: 0
Size of extra inode fields: 32