Skip to content

Commit 8afd8c8

Browse files
cschauflerpcmoore
authored andcommitted
lsm: remove lsm_prop scaffolding
Remove the scaffold member from the lsm_prop. Remove the remaining places it is being set. Signed-off-by: Casey Schaufler <casey@schaufler-ca.com> [PM: subj line tweak] Signed-off-by: Paul Moore <paul@paul-moore.com>
1 parent 05a344e commit 8afd8c8

File tree

7 files changed

+7
-70
lines changed

7 files changed

+7
-70
lines changed

include/linux/security.h

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -156,11 +156,6 @@ enum lockdown_reason {
156156
LOCKDOWN_CONFIDENTIALITY_MAX,
157157
};
158158

159-
/* scaffolding */
160-
struct lsm_prop_scaffold {
161-
u32 secid;
162-
};
163-
164159
/*
165160
* Data exported by the security modules
166161
*/
@@ -169,7 +164,6 @@ struct lsm_prop {
169164
struct lsm_prop_smack smack;
170165
struct lsm_prop_apparmor apparmor;
171166
struct lsm_prop_bpf bpf;
172-
struct lsm_prop_scaffold scaffold;
173167
};
174168

175169
extern const char *const lockdown_reasons[LOCKDOWN_CONFIDENTIALITY_MAX+1];

security/apparmor/audit.c

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -270,11 +270,7 @@ int aa_audit_rule_match(struct lsm_prop *prop, u32 field, u32 op, void *vrule)
270270
struct aa_label *label;
271271
int found = 0;
272272

273-
/* scaffolding */
274-
if (!prop->apparmor.label && prop->scaffold.secid)
275-
label = aa_secid_to_label(prop->scaffold.secid);
276-
else
277-
label = prop->apparmor.label;
273+
label = prop->apparmor.label;
278274

279275
if (!label)
280276
return -ENOENT;

security/apparmor/lsm.c

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -987,8 +987,6 @@ static void apparmor_current_getlsmprop_subj(struct lsm_prop *prop)
987987
struct aa_label *label = __begin_current_label_crit_section();
988988

989989
prop->apparmor.label = label;
990-
/* scaffolding */
991-
prop->scaffold.secid = label->secid;
992990
__end_current_label_crit_section(label);
993991
}
994992

@@ -998,8 +996,6 @@ static void apparmor_task_getlsmprop_obj(struct task_struct *p,
998996
struct aa_label *label = aa_get_task_label(p);
999997

1000998
prop->apparmor.label = label;
1001-
/* scaffolding */
1002-
prop->scaffold.secid = label->secid;
1003999
aa_put_label(label);
10041000
}
10051001

security/apparmor/secid.c

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -102,11 +102,7 @@ int apparmor_lsmprop_to_secctx(struct lsm_prop *prop, char **secdata,
102102
{
103103
struct aa_label *label;
104104

105-
/* scaffolding */
106-
if (!prop->apparmor.label && prop->scaffold.secid)
107-
label = aa_secid_to_label(prop->scaffold.secid);
108-
else
109-
label = prop->apparmor.label;
105+
label = prop->apparmor.label;
110106

111107
return apparmor_label_to_secctx(label, secdata, seclen);
112108
}

security/selinux/hooks.c

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3508,8 +3508,6 @@ static void selinux_inode_getlsmprop(struct inode *inode, struct lsm_prop *prop)
35083508
struct inode_security_struct *isec = inode_security_novalidate(inode);
35093509

35103510
prop->selinux.secid = isec->sid;
3511-
/* scaffolding */
3512-
prop->scaffold.secid = isec->sid;
35133511
}
35143512

35153513
static int selinux_inode_copy_up(struct dentry *src, struct cred **new)
@@ -4040,8 +4038,6 @@ static void selinux_cred_getsecid(const struct cred *c, u32 *secid)
40404038
static void selinux_cred_getlsmprop(const struct cred *c, struct lsm_prop *prop)
40414039
{
40424040
prop->selinux.secid = cred_sid(c);
4043-
/* scaffolding */
4044-
prop->scaffold.secid = prop->selinux.secid;
40454041
}
40464042

40474043
/*
@@ -4182,16 +4178,12 @@ static int selinux_task_getsid(struct task_struct *p)
41824178
static void selinux_current_getlsmprop_subj(struct lsm_prop *prop)
41834179
{
41844180
prop->selinux.secid = current_sid();
4185-
/* scaffolding */
4186-
prop->scaffold.secid = prop->selinux.secid;
41874181
}
41884182

41894183
static void selinux_task_getlsmprop_obj(struct task_struct *p,
41904184
struct lsm_prop *prop)
41914185
{
41924186
prop->selinux.secid = task_sid_obj(p);
4193-
/* scaffolding */
4194-
prop->scaffold.secid = prop->selinux.secid;
41954187
}
41964188

41974189
static int selinux_task_setnice(struct task_struct *p, int nice)
@@ -6339,8 +6331,6 @@ static void selinux_ipc_getlsmprop(struct kern_ipc_perm *ipcp,
63396331
{
63406332
struct ipc_security_struct *isec = selinux_ipc(ipcp);
63416333
prop->selinux.secid = isec->sid;
6342-
/* scaffolding */
6343-
prop->scaffold.secid = isec->sid;
63446334
}
63456335

63466336
static void selinux_d_instantiate(struct dentry *dentry, struct inode *inode)
@@ -6625,13 +6615,7 @@ static int selinux_secid_to_secctx(u32 secid, char **secdata, u32 *seclen)
66256615
static int selinux_lsmprop_to_secctx(struct lsm_prop *prop, char **secdata,
66266616
u32 *seclen)
66276617
{
6628-
u32 secid = prop->selinux.secid;
6629-
6630-
/* scaffolding */
6631-
if (!secid)
6632-
secid = prop->scaffold.secid;
6633-
6634-
return selinux_secid_to_secctx(secid, secdata, seclen);
6618+
return selinux_secid_to_secctx(prop->selinux.secid, secdata, seclen);
66356619
}
66366620

66376621
static int selinux_secctx_to_secid(const char *secdata, u32 seclen, u32 *secid)

security/selinux/ss/services.c

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3661,10 +3661,6 @@ int selinux_audit_rule_match(struct lsm_prop *prop, u32 field, u32 op, void *vru
36613661
goto out;
36623662
}
36633663

3664-
/* scaffolding */
3665-
if (!prop->selinux.secid && prop->scaffold.secid)
3666-
prop->selinux.secid = prop->scaffold.secid;
3667-
36683664
ctxt = sidtab_search(policy->sidtab, prop->selinux.secid);
36693665
if (unlikely(!ctxt)) {
36703666
WARN_ONCE(1, "selinux_audit_rule_match: unrecognized SID %d\n",

security/smack/smack_lsm.c

Lines changed: 4 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1655,11 +1655,7 @@ static int smack_inode_listsecurity(struct inode *inode, char *buffer,
16551655
*/
16561656
static void smack_inode_getlsmprop(struct inode *inode, struct lsm_prop *prop)
16571657
{
1658-
struct smack_known *skp = smk_of_inode(inode);
1659-
1660-
prop->smack.skp = skp;
1661-
/* scaffolding */
1662-
prop->scaffold.secid = skp->smk_secid;
1658+
prop->smack.skp = smk_of_inode(inode);
16631659
}
16641660

16651661
/*
@@ -2162,8 +2158,6 @@ static void smack_cred_getlsmprop(const struct cred *cred,
21622158
{
21632159
rcu_read_lock();
21642160
prop->smack.skp = smk_of_task(smack_cred(cred));
2165-
/* scaffolding */
2166-
prop->scaffold.secid = prop->smack.skp->smk_secid;
21672161
rcu_read_unlock();
21682162
}
21692163

@@ -2265,11 +2259,7 @@ static int smack_task_getsid(struct task_struct *p)
22652259
*/
22662260
static void smack_current_getlsmprop_subj(struct lsm_prop *prop)
22672261
{
2268-
struct smack_known *skp = smk_of_current();
2269-
2270-
prop->smack.skp = skp;
2271-
/* scaffolding */
2272-
prop->scaffold.secid = skp->smk_secid;
2262+
prop->smack.skp = smk_of_current();
22732263
}
22742264

22752265
/**
@@ -2282,11 +2272,7 @@ static void smack_current_getlsmprop_subj(struct lsm_prop *prop)
22822272
static void smack_task_getlsmprop_obj(struct task_struct *p,
22832273
struct lsm_prop *prop)
22842274
{
2285-
struct smack_known *skp = smk_of_task_struct_obj(p);
2286-
2287-
prop->smack.skp = skp;
2288-
/* scaffolding */
2289-
prop->scaffold.secid = skp->smk_secid;
2275+
prop->smack.skp = smk_of_task_struct_obj(p);
22902276
}
22912277

22922278
/**
@@ -3466,11 +3452,8 @@ static int smack_ipc_permission(struct kern_ipc_perm *ipp, short flag)
34663452
static void smack_ipc_getlsmprop(struct kern_ipc_perm *ipp, struct lsm_prop *prop)
34673453
{
34683454
struct smack_known **iskpp = smack_ipc(ipp);
3469-
struct smack_known *iskp = *iskpp;
34703455

3471-
prop->smack.skp = iskp;
3472-
/* scaffolding */
3473-
prop->scaffold.secid = iskp->smk_secid;
3456+
prop->smack.skp = *iskpp;
34743457
}
34753458

34763459
/**
@@ -4805,10 +4788,6 @@ static int smack_audit_rule_match(struct lsm_prop *prop, u32 field, u32 op,
48054788
if (field != AUDIT_SUBJ_USER && field != AUDIT_OBJ_USER)
48064789
return 0;
48074790

4808-
/* scaffolding */
4809-
if (!skp && prop->scaffold.secid)
4810-
skp = smack_from_secid(prop->scaffold.secid);
4811-
48124791
/*
48134792
* No need to do string comparisons. If a match occurs,
48144793
* both pointers will point to the same smack_known
@@ -4869,10 +4848,6 @@ static int smack_lsmprop_to_secctx(struct lsm_prop *prop, char **secdata,
48694848
{
48704849
struct smack_known *skp = prop->smack.skp;
48714850

4872-
/* scaffolding */
4873-
if (!skp && prop->scaffold.secid)
4874-
skp = smack_from_secid(prop->scaffold.secid);
4875-
48764851
if (secdata)
48774852
*secdata = skp->smk_known;
48784853
*seclen = strlen(skp->smk_known);

0 commit comments

Comments
 (0)