• Jie Liu's avatar
    jfs: fix xattr value size overflow in __jfs_setxattr · 0439e091
    Jie Liu authored
    There is a potential overflow if the specified EA value size is
    greater than USHRT_MAX because the size of value is limited by
    the on-disk format (i.e, __le16), this issue could be reflected
    via the tests below:
     # touch /jfs/testfile
     # setfattr -n user.comment -v `perl -e 'print "A"x65536'` /jfs/testfile
       setfattr: /jfs/testfile: Invalid argument
    
    Syslog:
     ... jfs_xsetattr: xattr_size = 21, new_size = 65557
    
    This patch add pre-checkups of EA value size against USHRT_MAX to
    avoid this problem, and return -E2BIG which is consistent with the
    VFS setxattr interface.  Moreover, fix the debug code to print the
    correct function name.
    
    With this fix:
     setfattr: /jfs/testfile: Argument list too long
    Signed-off-by: default avatarJie Liu <jeff.liu@oracle.com>
    Signed-off-by: default avatarDave Kleikamp <dave.kleikamp@oracle.com>
    0439e091
xattr.c 27.7 KB