]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
netlabel,smack: use lsm_prop for audit data
authorCasey Schaufler <casey@schaufler-ca.com>
Wed, 9 Oct 2024 17:32:20 +0000 (10:32 -0700)
committerPaul Moore <paul@paul-moore.com>
Fri, 11 Oct 2024 18:34:16 +0000 (14:34 -0400)
Replace the secid in the netlbl_audit structure with an lsm_prop.
Remove scaffolding that was required when the value was a secid.

Signed-off-by: Casey Schaufler <casey@schaufler-ca.com>
[PM: fix the subject line]
Signed-off-by: Paul Moore <paul@paul-moore.com>
include/net/netlabel.h
net/netlabel/netlabel_unlabeled.c
net/netlabel/netlabel_user.c
net/netlabel/netlabel_user.h
security/smack/smackfs.c

index 529160f76cac209ee7473ea7b5ccd49da0789f18..8de8344ee93c1e2ba61b5afc7aad5b10fa7381e6 100644 (file)
@@ -97,7 +97,7 @@ struct calipso_doi;
 
 /* NetLabel audit information */
 struct netlbl_audit {
-       u32 secid;
+       struct lsm_prop prop;
        kuid_t loginuid;
        unsigned int sessionid;
 };
index 5925f48a3ade91e70f56405c42091e5930c4101d..1bc2d0890a9f1050d4592ea73bf4127b1b168620 100644 (file)
@@ -1534,14 +1534,11 @@ int __init netlbl_unlabel_defconf(void)
        int ret_val;
        struct netlbl_dom_map *entry;
        struct netlbl_audit audit_info;
-       struct lsm_prop prop;
 
        /* Only the kernel is allowed to call this function and the only time
         * it is called is at bootup before the audit subsystem is reporting
         * messages so don't worry to much about these values. */
-       security_current_getlsmprop_subj(&prop);
-       /* scaffolding */
-       audit_info.secid = prop.scaffold.secid;
+       security_current_getlsmprop_subj(&audit_info.prop);
        audit_info.loginuid = GLOBAL_ROOT_UID;
        audit_info.sessionid = 0;
 
index 3ed4fea2a2de354a3888dee9dcca6b5a6023f7d2..81635a13987b114af063f3c41c6fb847e40b0066 100644 (file)
@@ -98,10 +98,9 @@ struct audit_buffer *netlbl_audit_start_common(int type,
                         from_kuid(&init_user_ns, audit_info->loginuid),
                         audit_info->sessionid);
 
-       if (audit_info->secid != 0 &&
-           security_secid_to_secctx(audit_info->secid,
-                                    &secctx,
-                                    &secctx_len) == 0) {
+       if (lsmprop_is_set(&audit_info->prop) &&
+           security_lsmprop_to_secctx(&audit_info->prop, &secctx,
+                                      &secctx_len) == 0) {
                audit_log_format(audit_buf, " subj=%s", secctx);
                security_release_secctx(secctx, secctx_len);
        }
index 39f4f6df5f5188d451c4255a753317f84c636ea4..d4c4349562120e9879ef8c8f8e9ecc7691b5d7fa 100644 (file)
  */
 static inline void netlbl_netlink_auditinfo(struct netlbl_audit *audit_info)
 {
-       struct lsm_prop prop;
-
-       security_current_getlsmprop_subj(&prop);
-       /* scaffolding */
-       audit_info->secid = prop.scaffold.secid;
+       security_current_getlsmprop_subj(&audit_info->prop);
        audit_info->loginuid = audit_get_loginuid(current);
        audit_info->sessionid = audit_get_sessionid(current);
 }
index 5dd1e164f9b13d05e9d4786aeb3ae5cc9cb6aebc..1401412fd794888cf8c44496991ca1ebf632942f 100644 (file)
@@ -182,11 +182,9 @@ static inline void smack_catset_bit(unsigned int cat, char *catsetp)
  */
 static void smk_netlabel_audit_set(struct netlbl_audit *nap)
 {
-       struct smack_known *skp = smk_of_current();
-
        nap->loginuid = audit_get_loginuid(current);
        nap->sessionid = audit_get_sessionid(current);
-       nap->secid = skp->smk_secid;
+       nap->prop.smack.skp = smk_of_current();
 }
 
 /*