• Roberto Sassu's avatar
    reiserfs: Add security prefix to xattr name in reiserfs_security_write() · d82dcd9e
    Roberto Sassu authored
    Reiserfs sets a security xattr at inode creation time in two stages: first,
    it calls reiserfs_security_init() to obtain the xattr from active LSMs;
    then, it calls reiserfs_security_write() to actually write that xattr.
    
    Unfortunately, it seems there is a wrong expectation that LSMs provide the
    full xattr name in the form 'security.<suffix>'. However, LSMs always
    provided just the suffix, causing reiserfs to not write the xattr at all
    (if the suffix is shorter than the prefix), or to write an xattr with the
    wrong name.
    
    Add a temporary buffer in reiserfs_security_write(), and write to it the
    full xattr name, before passing it to reiserfs_xattr_set_handle().
    
    Also replace the name length check with a check that the full xattr name is
    not larger than XATTR_NAME_MAX.
    
    Cc: stable@vger.kernel.org # v2.6.x
    Fixes: 57fe60df ("reiserfs: add atomic addition of selinux attributes during inode creation")
    Signed-off-by: default avatarRoberto Sassu <roberto.sassu@huawei.com>
    Signed-off-by: default avatarPaul Moore <paul@paul-moore.com>
    d82dcd9e
xattr_security.c 3.18 KB