Commit 314a8dc7 authored by Roberto Sassu's avatar Roberto Sassu Committed by Paul Moore
Browse files

security: Align inode_setattr hook definition with EVM



Add the idmap parameter to the definition, so that evm_inode_setattr() can
be registered as this hook implementation.

Signed-off-by: default avatarRoberto Sassu <roberto.sassu@huawei.com>
Reviewed-by: default avatarStefan Berger <stefanb@linux.ibm.com>
Acked-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>
parent 779cb194
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -135,7 +135,8 @@ LSM_HOOK(int, 0, inode_readlink, struct dentry *dentry)
LSM_HOOK(int, 0, inode_follow_link, struct dentry *dentry, struct inode *inode,
	 bool rcu)
LSM_HOOK(int, 0, inode_permission, struct inode *inode, int mask)
LSM_HOOK(int, 0, inode_setattr, struct dentry *dentry, struct iattr *attr)
LSM_HOOK(int, 0, inode_setattr, struct mnt_idmap *idmap, struct dentry *dentry,
	 struct iattr *attr)
LSM_HOOK(int, 0, inode_getattr, const struct path *path)
LSM_HOOK(int, 0, inode_setxattr, struct mnt_idmap *idmap,
	 struct dentry *dentry, const char *name, const void *value,
+1 −1
Original line number Diff line number Diff line
@@ -2215,7 +2215,7 @@ int security_inode_setattr(struct mnt_idmap *idmap,

	if (unlikely(IS_PRIVATE(d_backing_inode(dentry))))
		return 0;
	ret = call_int_hook(inode_setattr, 0, dentry, attr);
	ret = call_int_hook(inode_setattr, 0, idmap, dentry, attr);
	if (ret)
		return ret;
	return evm_inode_setattr(idmap, dentry, attr);
+2 −1
Original line number Diff line number Diff line
@@ -3136,7 +3136,8 @@ static int selinux_inode_permission(struct inode *inode, int mask)
	return rc;
}

static int selinux_inode_setattr(struct dentry *dentry, struct iattr *iattr)
static int selinux_inode_setattr(struct mnt_idmap *idmap, struct dentry *dentry,
				 struct iattr *iattr)
{
	const struct cred *cred = current_cred();
	struct inode *inode = d_backing_inode(dentry);
+3 −1
Original line number Diff line number Diff line
@@ -1233,12 +1233,14 @@ static int smack_inode_permission(struct inode *inode, int mask)

/**
 * smack_inode_setattr - Smack check for setting attributes
 * @idmap: idmap of the mount
 * @dentry: the object
 * @iattr: for the force flag
 *
 * Returns 0 if access is permitted, an error code otherwise
 */
static int smack_inode_setattr(struct dentry *dentry, struct iattr *iattr)
static int smack_inode_setattr(struct mnt_idmap *idmap, struct dentry *dentry,
			       struct iattr *iattr)
{
	struct smk_audit_info ad;
	int rc;