From: Theodore Ts'o Date: Sat, 3 Mar 2018 21:39:32 +0000 (-0500) Subject: Merge branch 'maint' into next X-Git-Tag: v1.44.0-rc2~7 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3a86e7a7c7d9d44d564ebadee134dd981118ba14;p=thirdparty%2Fe2fsprogs.git Merge branch 'maint' into next --- 3a86e7a7c7d9d44d564ebadee134dd981118ba14 diff --cc e2fsck/pass1.c index 5015d9382,975f3f106..723acf099 --- a/e2fsck/pass1.c +++ b/e2fsck/pass1.c @@@ -253,8 -243,36 +253,8 @@@ int e2fsck_pass1_check_symlink(ext2_fil } 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) diff --cc tests/f_create_symlinks/expect index 440938550,71f0c6299..3033f8aac --- a/tests/f_create_symlinks/expect +++ b/tests/f_create_symlinks/expect @@@ -19,38 -20,49 +20,49 @@@ symlink: Invalid argument passed to ext 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