Message ID | 20170621212142.16581-16-tahsin@google.com |
---|---|
State | Accepted, archived |
Headers | show |
On Wed, Jun 21, 2017 at 02:21:26PM -0700, Tahsin Erdogan wrote: > When a xattr entry refers to an external inode, the value data is not > available in the inline area so we should not attempt to read it using > value offset. > > Signed-off-by: Tahsin Erdogan <tahsin@google.com> Thanks, added to the ext4 patch queue. - Ted
diff --git a/fs/ext4/xattr.c b/fs/ext4/xattr.c index 9c243b3510b7..739f73a5a345 100644 --- a/fs/ext4/xattr.c +++ b/fs/ext4/xattr.c @@ -2169,7 +2169,8 @@ ext4_xattr_cmp(struct ext4_xattr_header *header1, entry1->e_value_inum != entry2->e_value_inum || memcmp(entry1->e_name, entry2->e_name, entry1->e_name_len)) return 1; - if (memcmp((char *)header1 + le16_to_cpu(entry1->e_value_offs), + if (!entry1->e_value_inum && + memcmp((char *)header1 + le16_to_cpu(entry1->e_value_offs), (char *)header2 + le16_to_cpu(entry2->e_value_offs), le32_to_cpu(entry1->e_value_size))) return 1;
When a xattr entry refers to an external inode, the value data is not available in the inline area so we should not attempt to read it using value offset. Signed-off-by: Tahsin Erdogan <tahsin@google.com> --- fs/ext4/xattr.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)