[PATCH 5/7] Smack: hooks for secctx_to_lsmprop and update_lsmprop
Casey Schaufler <[email protected]>
| Newsgroups | gmane.linux.kernel,gmane.linux.kernel.lsm,gmane.comp.security.firewalls.netfilter.devel |
|---|---|
| Message-ID | <[email protected]> |
Implement these hooks. Signed-off-by: Casey Schaufler <[email protected]> --- security/smack/smack_lsm.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/security/smack/smack_lsm.c b/security/smack/smack_lsm.c index ff115068c5c0..8e3ab61dfdd9 100644 --- a/security/smack/smack_lsm.c +++ b/security/smack/smack_lsm.c @@ -4909,6 +4909,40 @@ static int smack_lsmprop_to_secctx(struct lsm_prop *prop, return smack_to_secctx(prop->smack.skp, cp); } +/** + * smack_secctx_to_lsmprop - add the smack label to an lsmprop + * @secdata: smack label + * @seclen: how long label is + * @prop: where to put the result + * + * Exists for audit and networking code. + */ +static int smack_secctx_to_lsmprop(const char *secdata, u32 seclen, + struct lsm_prop *prop) +{ + prop->smack.skp = smk_find_entry(secdata); + + return 0; +} + +/** + * smack_update_lsmprop - set the smack label in an lsmprop + * @dest: destination properties + * @src: source properties + * @lsmid: which LSM is relevant. + * + * Set the Smack entry in the @dest if appropriate. + * Returns 0. + */ +static int smack_update_lsmprop(struct lsm_prop *dest, struct lsm_prop *src, + int lsmid) +{ + if (lsmid == LSM_ID_SMACK || lsmid == LSM_ID_UNDEF) + dest->smack.skp = src->smack.skp; + + return 0; +} + /** * smack_secctx_to_secid - return the secid for a smack label * @secdata: smack label @@ -5269,6 +5303,8 @@ static struct security_hook_list smack_hooks[] __ro_after_init = { LSM_HOOK_INIT(secid_to_secctx, smack_secid_to_secctx), LSM_HOOK_INIT(lsmprop_to_secctx, smack_lsmprop_to_secctx), LSM_HOOK_INIT(secctx_to_secid, smack_secctx_to_secid), + LSM_HOOK_INIT(secctx_to_lsmprop, smack_secctx_to_lsmprop), + LSM_HOOK_INIT(update_lsmprop, smack_update_lsmprop), LSM_HOOK_INIT(inode_notifysecctx, smack_inode_notifysecctx), LSM_HOOK_INIT(inode_setsecctx, smack_inode_setsecctx), LSM_HOOK_INIT(inode_getsecctx, smack_inode_getsecctx), -- 2.54.0