On Mon, 2024-11-25 at 12:38 +0100, Christian Göttsche wrote: > Hi, > > I noticed that the `prop` parameter of `ima_match_rules()` is > currently unused (due to shadowing). > Is that by design or a mishap of the recent rework? > > Related commits: > > 37f670a ("lsm: use lsm_prop in security_current_getsecid") > 870b7fd ("lsm: use lsm_prop in security_audit_rule_match") > 07f9d2c ("lsm: use lsm_prop in security_inode_getsecid") Uhm, interesting... To me it seems a variable naming collision. We are first declaring a new variable: - u32 osid; + struct lsm_prop prop = { }; And then, we are introducing a parameter with the same name: static bool ima_match_rules(struct ima_rule_entry *rule, struct mnt_idmap *idmap, struct inode *inode, const struct cred *cred, - u32 secid, enum ima_hooks func, int mask, + struct lsm_prop *prop, enum ima_hooks func, int mask, I think we should call the first variable inode_prop, and we should pass prop here: case LSM_SUBJ_TYPE: - /* scaffolding */ - prop.scaffold.secid = secid; rc = ima_filter_rule_match(&prop, lsm_rule->lsm[i].type, Audit_equal, Roberto