lkml.org 
[lkml]   [2019]   [Jan]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.19 111/170] ext4: include terminating u32 in size of xattr entries when expanding inodes
    Date
    4.19-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Theodore Ts'o <tytso@mit.edu>

    commit a805622a757b6d7f65def4141d29317d8e37b8a1 upstream.

    In ext4_expand_extra_isize_ea(), we calculate the total size of the
    xattr header, plus the xattr entries so we know how much of the
    beginning part of the xattrs to move when expanding the inode extra
    size. We need to include the terminating u32 at the end of the xattr
    entries, or else if there is uninitialized, non-zero bytes after the
    xattr entries and before the xattr values, the list of xattr entries
    won't be properly terminated.

    Reported-by: Steve Graham <stgraham2000@gmail.com>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Cc: stable@kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    fs/ext4/xattr.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    --- a/fs/ext4/xattr.c
    +++ b/fs/ext4/xattr.c
    @@ -2725,7 +2725,7 @@ retry:
    base = IFIRST(header);
    end = (void *)raw_inode + EXT4_SB(inode->i_sb)->s_inode_size;
    min_offs = end - base;
    - total_ino = sizeof(struct ext4_xattr_ibody_header);
    + total_ino = sizeof(struct ext4_xattr_ibody_header) + sizeof(u32);

    error = xattr_check_inode(inode, header, end);
    if (error)

    \
     
     \ /
      Last update: 2019-01-07 18:24    [W:4.139 / U:0.028 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site