Messages in this thread | | | Date | Tue, 7 Nov 2023 09:23:16 -0800 | Subject | Re: [PATCH v5 03/23] ima: Align ima_inode_setxattr() definition with LSM infrastructure | From | Casey Schaufler <> |
| |
On 11/7/2023 5:39 AM, Roberto Sassu wrote: > From: Roberto Sassu <roberto.sassu@huawei.com> > > Change ima_inode_setxattr() definition, so that it can be registered as > implementation of the inode_setxattr hook. > > Signed-off-by: Roberto Sassu <roberto.sassu@huawei.com> > Reviewed-by: Stefan Berger <stefanb@linux.ibm.com> > Reviewed-by: Mimi Zohar <zohar@linux.ibm.com>
Reviewed-by: Casey Schaufler <casey@schaufler-ca.com>
> --- > include/linux/ima.h | 11 +++++++---- > security/integrity/ima/ima_appraise.c | 5 +++-- > security/security.c | 2 +- > 3 files changed, 11 insertions(+), 7 deletions(-) > > diff --git a/include/linux/ima.h b/include/linux/ima.h > index b66353f679e8..077324309c11 100644 > --- a/include/linux/ima.h > +++ b/include/linux/ima.h > @@ -188,8 +188,9 @@ static inline void ima_post_key_create_or_update(struct key *keyring, > extern bool is_ima_appraise_enabled(void); > extern void ima_inode_post_setattr(struct mnt_idmap *idmap, > struct dentry *dentry, int ia_valid); > -extern int ima_inode_setxattr(struct dentry *dentry, const char *xattr_name, > - const void *xattr_value, size_t xattr_value_len); > +extern int ima_inode_setxattr(struct mnt_idmap *idmap, struct dentry *dentry, > + const char *xattr_name, const void *xattr_value, > + size_t xattr_value_len, int flags); > extern int ima_inode_set_acl(struct mnt_idmap *idmap, > struct dentry *dentry, const char *acl_name, > struct posix_acl *kacl); > @@ -212,10 +213,12 @@ static inline void ima_inode_post_setattr(struct mnt_idmap *idmap, > return; > } > > -static inline int ima_inode_setxattr(struct dentry *dentry, > +static inline int ima_inode_setxattr(struct mnt_idmap *idmap, > + struct dentry *dentry, > const char *xattr_name, > const void *xattr_value, > - size_t xattr_value_len) > + size_t xattr_value_len, > + int flags) > { > return 0; > } > diff --git a/security/integrity/ima/ima_appraise.c b/security/integrity/ima/ima_appraise.c > index 36c2938a5c69..cb2d0d11aa77 100644 > --- a/security/integrity/ima/ima_appraise.c > +++ b/security/integrity/ima/ima_appraise.c > @@ -750,8 +750,9 @@ static int validate_hash_algo(struct dentry *dentry, > return -EACCES; > } > > -int ima_inode_setxattr(struct dentry *dentry, const char *xattr_name, > - const void *xattr_value, size_t xattr_value_len) > +int ima_inode_setxattr(struct mnt_idmap *idmap, struct dentry *dentry, > + const char *xattr_name, const void *xattr_value, > + size_t xattr_value_len, int flags) > { > const struct evm_ima_xattr_data *xvalue = xattr_value; > int digsig = 0; > diff --git a/security/security.c b/security/security.c > index c87ba1bbd7dc..ec5c8065ea36 100644 > --- a/security/security.c > +++ b/security/security.c > @@ -2269,7 +2269,7 @@ int security_inode_setxattr(struct mnt_idmap *idmap, > ret = cap_inode_setxattr(dentry, name, value, size, flags); > if (ret) > return ret; > - ret = ima_inode_setxattr(dentry, name, value, size); > + ret = ima_inode_setxattr(idmap, dentry, name, value, size, flags); > if (ret) > return ret; > return evm_inode_setxattr(idmap, dentry, name, value, size);
| |