From: Casey Schaufler <casey@schaufler-ca.com>
To: Jarkko Sakkinen <jarkko@kernel.org>,
Roberto Sassu <roberto.sassu@huaweicloud.com>,
viro@zeniv.linux.org.uk, brauner@kernel.org,
chuck.lever@oracle.com, jlayton@kernel.org, neilb@suse.de,
kolga@netapp.com, Dai.Ngo@oracle.com, tom@talpey.com,
zohar@linux.ibm.com, dmitry.kasatkin@gmail.com,
paul@paul-moore.com, jmorris@namei.org, serge@hallyn.com,
dhowells@redhat.com, stephen.smalley.work@gmail.com,
eparis@parisplace.org
Cc: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-nfs@vger.kernel.org, linux-integrity@vger.kernel.org,
linux-security-module@vger.kernel.org, keyrings@vger.kernel.org,
selinux@vger.kernel.org, Roberto Sassu <roberto.sassu@huawei.com>,
Stefan Berger <stefanb@linux.ibm.com>,
Casey Schaufler <casey@schaufler-ca.com>
Subject: Re: [PATCH v2 11/25] security: Align inode_setattr hook definition with EVM
Date: Tue, 5 Sep 2023 08:56:15 -0700 [thread overview]
Message-ID: <19943e35-2e7c-d27a-1a5d-189eea439dfd@schaufler-ca.com> (raw)
In-Reply-To: <CVAFV92MONCH.257Y9YQ3OEU4B@suppilovahvero>
On 9/4/2023 2:08 PM, Jarkko Sakkinen wrote:
> On Thu Aug 31, 2023 at 1:41 PM EEST, Roberto Sassu wrote:
>> From: Roberto Sassu <roberto.sassu@huawei.com>
>>
>> Add the idmap parameter to the definition, so that evm_inode_setattr() can
>> be registered as this hook implementation.
>>
>> Signed-off-by: Roberto Sassu <roberto.sassu@huawei.com>
>> Reviewed-by: Stefan Berger <stefanb@linux.ibm.com>
>> Acked-by: Casey Schaufler <casey@schaufler-ca.com>
>> ---
>> include/linux/lsm_hook_defs.h | 3 ++-
>> security/security.c | 2 +-
>> security/selinux/hooks.c | 3 ++-
>> security/smack/smack_lsm.c | 4 +++-
>> 4 files changed, 8 insertions(+), 4 deletions(-)
>>
>> diff --git a/include/linux/lsm_hook_defs.h b/include/linux/lsm_hook_defs.h
>> index 4bdddb52a8fe..fdf075a6b1bb 100644
>> --- a/include/linux/lsm_hook_defs.h
>> +++ b/include/linux/lsm_hook_defs.h
>> @@ -134,7 +134,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_setattr, struct mnt_idmap *idmap, struct dentry *dentry, struct iattr *attr)
>
> Only 99 characters, i.e. breaking into two lines is not necessary.
We're keeping the LSM code in the ancient 80 character format.
Until we get some fresh, young maintainers involved who can convince
us that line wrapped 80 character terminals are kewl we're sticking
with what we know.
https://lwn.net/Articles/822168/
>
>> 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,
>> diff --git a/security/security.c b/security/security.c
>> index cb6242feb968..2b24d01cf181 100644
>> --- a/security/security.c
>> +++ b/security/security.c
>> @@ -2117,7 +2117,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);
>> diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
>> index ee7c49c2cfd3..bfcc4d9aa5ab 100644
>> --- a/security/selinux/hooks.c
>> +++ b/security/selinux/hooks.c
>> @@ -3075,7 +3075,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);
>> diff --git a/security/smack/smack_lsm.c b/security/smack/smack_lsm.c
>> index 679156601a10..89f2669d50a9 100644
>> --- a/security/smack/smack_lsm.c
>> +++ b/security/smack/smack_lsm.c
>> @@ -1181,12 +1181,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)
> static int smack_inode_setattr(struct mnt_idmap *idmap, struct dentry *dentry, struct iattr *iattr)
>
> Can be still in a single line (100 characters exactly).
>
>
>> {
>> struct smk_audit_info ad;
>> int rc;
>> --
>> 2.34.1
>
> BR, Jarkko
next prev parent reply other threads:[~2023-09-05 16:26 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-31 10:41 [PATCH v2 00/25] security: Move IMA and EVM to the LSM infrastructure Roberto Sassu
2023-08-31 10:41 ` [PATCH v2 01/25] ima: Align ima_inode_post_setattr() definition with " Roberto Sassu
2023-08-31 10:41 ` [PATCH v2 02/25] ima: Align ima_post_path_mknod() " Roberto Sassu
2023-08-31 10:41 ` [PATCH v2 03/25] ima: Align ima_post_create_tmpfile() " Roberto Sassu
2023-08-31 10:41 ` [PATCH v2 04/25] ima: Align ima_file_mprotect() " Roberto Sassu
2023-08-31 10:41 ` [PATCH v2 05/25] ima: Align ima_inode_setxattr() " Roberto Sassu
2023-08-31 10:41 ` [PATCH v2 06/25] ima: Align ima_inode_removexattr() " Roberto Sassu
2023-08-31 10:41 ` [PATCH v2 07/25] ima: Align ima_post_read_file() " Roberto Sassu
2023-08-31 10:41 ` [PATCH v2 08/25] evm: Align evm_inode_post_setattr() " Roberto Sassu
2023-08-31 10:41 ` [PATCH v2 09/25] evm: Align evm_inode_setxattr() " Roberto Sassu
2023-08-31 10:41 ` [PATCH v2 10/25] evm: Align evm_inode_post_setxattr() " Roberto Sassu
2023-08-31 10:41 ` [PATCH v2 11/25] security: Align inode_setattr hook definition with EVM Roberto Sassu
2023-09-04 21:08 ` Jarkko Sakkinen
2023-09-05 15:56 ` Casey Schaufler [this message]
2023-09-11 10:50 ` Jarkko Sakkinen
2023-08-31 10:41 ` [PATCH v2 12/25] security: Introduce inode_post_setattr hook Roberto Sassu
2023-08-31 22:28 ` Casey Schaufler
2023-09-04 21:09 ` Jarkko Sakkinen
2023-08-31 10:41 ` [PATCH v2 13/25] security: Introduce inode_post_removexattr hook Roberto Sassu
2023-08-31 22:30 ` Casey Schaufler
2023-09-04 21:11 ` Jarkko Sakkinen
2023-09-05 6:51 ` Roberto Sassu
2023-09-05 16:49 ` Mimi Zohar
2023-08-31 10:41 ` [PATCH v2 14/25] security: Introduce file_post_open hook Roberto Sassu
2023-08-31 22:33 ` Casey Schaufler
2023-08-31 10:41 ` [PATCH v2 15/25] security: Introduce file_pre_free_security hook Roberto Sassu
2023-08-31 22:34 ` Casey Schaufler
2023-08-31 10:41 ` [PATCH v2 16/25] security: Introduce path_post_mknod hook Roberto Sassu
2023-08-31 22:34 ` Casey Schaufler
2023-08-31 10:41 ` [PATCH v2 17/25] security: Introduce inode_post_create_tmpfile hook Roberto Sassu
2023-08-31 22:35 ` Casey Schaufler
2023-08-31 10:41 ` [PATCH v2 18/25] security: Introduce inode_post_set_acl hook Roberto Sassu
2023-08-31 22:36 ` Casey Schaufler
2023-08-31 10:41 ` [PATCH v2 19/25] security: Introduce inode_post_remove_acl hook Roberto Sassu
2023-08-31 22:36 ` Casey Schaufler
2023-08-31 11:37 ` [PATCH v2 20/25] security: Introduce key_post_create_or_update hook Roberto Sassu
2023-08-31 22:37 ` Casey Schaufler
2023-08-31 11:37 ` [PATCH v2 21/25] ima: Move to LSM infrastructure Roberto Sassu
2023-08-31 14:10 ` Chuck Lever
2023-08-31 22:42 ` Casey Schaufler
2023-08-31 11:38 ` [PATCH v2 22/25] ima: Move IMA-Appraisal " Roberto Sassu
2023-08-31 11:38 ` [PATCH v2 23/25] evm: Move " Roberto Sassu
2023-08-31 22:46 ` Casey Schaufler
2023-08-31 11:38 ` [PATCH v2 24/25] integrity: Move integrity functions to the " Roberto Sassu
2023-08-31 22:49 ` Casey Schaufler
2023-08-31 11:38 ` [PATCH v2 25/25] integrity: Switch from rbtree to LSM-managed blob for integrity_iint_cache Roberto Sassu
2023-08-31 23:05 ` Casey Schaufler
2023-08-31 23:01 ` [PATCH v2 00/25] security: Move IMA and EVM to the LSM infrastructure Casey Schaufler
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=19943e35-2e7c-d27a-1a5d-189eea439dfd@schaufler-ca.com \
--to=casey@schaufler-ca.com \
--cc=Dai.Ngo@oracle.com \
--cc=brauner@kernel.org \
--cc=chuck.lever@oracle.com \
--cc=dhowells@redhat.com \
--cc=dmitry.kasatkin@gmail.com \
--cc=eparis@parisplace.org \
--cc=jarkko@kernel.org \
--cc=jlayton@kernel.org \
--cc=jmorris@namei.org \
--cc=keyrings@vger.kernel.org \
--cc=kolga@netapp.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-integrity@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-nfs@vger.kernel.org \
--cc=linux-security-module@vger.kernel.org \
--cc=neilb@suse.de \
--cc=paul@paul-moore.com \
--cc=roberto.sassu@huawei.com \
--cc=roberto.sassu@huaweicloud.com \
--cc=selinux@vger.kernel.org \
--cc=serge@hallyn.com \
--cc=stefanb@linux.ibm.com \
--cc=stephen.smalley.work@gmail.com \
--cc=tom@talpey.com \
--cc=viro@zeniv.linux.org.uk \
--cc=zohar@linux.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox