From: Jan Kara Date: Thu, 11 Aug 2016 16:00:01 +0000 (-0400) Subject: ext4: properly align shifted xattrs when expanding inodes X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=443a8c41cd49de66a3fda45b32b9860ea0292b84;p=linux.git ext4: properly align shifted xattrs when expanding inodes We did not count with the padding of xattr value when computing desired shift of xattrs in the inode when expanding i_extra_isize. As a result we could create unaligned start of inline xattrs. Account for alignment properly. CC: stable@vger.kernel.org # 4.4.x- Signed-off-by: Jan Kara --- diff --git a/fs/ext4/xattr.c b/fs/ext4/xattr.c index b18b1ff7cc272..c893f00b6dc00 100644 --- a/fs/ext4/xattr.c +++ b/fs/ext4/xattr.c @@ -1522,7 +1522,7 @@ retry: if (entry_size + EXT4_XATTR_SIZE(size) >= isize_diff) shift_bytes = isize_diff; else - shift_bytes = entry_size + size; + shift_bytes = entry_size + EXT4_XATTR_SIZE(size); /* Adjust the offsets and shift the remaining entries ahead */ ext4_xattr_shift_entries(entry, -shift_bytes, (void *)raw_inode + EXT4_GOOD_OLD_INODE_SIZE +