• Roberto Sassu's avatar
    reiserfs: Switch to security_inode_init_security() · 52ca4b64
    Roberto Sassu authored
    In preparation for removing security_old_inode_init_security(), switch to
    security_inode_init_security(). Commit 572302af ("reiserfs: Add missing
    calls to reiserfs_security_free()") fixed possible memory leaks and another
    issue related to adding an xattr at inode creation time.
    
    Define the initxattrs callback reiserfs_initxattrs(), to populate the
    name/value/len triple in the reiserfs_security_handle() with the first
    xattr provided by LSMs. Make a copy of the xattr value, as
    security_inode_init_security() frees it.
    
    After the call to security_inode_init_security(), remove the check for
    returning -EOPNOTSUPP, as security_inode_init_security() changes it to
    zero.
    
    Multiple xattrs are currently not supported, as the
    reiserfs_security_handle structure is exported to user space. As a
    consequence, even if EVM is invoked, it will not provide an xattr (if it
    is not the first to set it, its xattr will be discarded; if it is the
    first, it does not have xattrs to calculate the HMAC on).
    Signed-off-by: default avatarRoberto Sassu <roberto.sassu@huawei.com>
    Reviewed-by: default avatarCasey Schaufler <casey@schaufler-ca.com>
    Reviewed-by: default avatarMimi Zohar <zohar@linux.ibm.com>
    Signed-off-by: default avatarPaul Moore <paul@paul-moore.com>
    52ca4b64
xattr_security.c 3.05 KB