Lines Matching refs:rule
75 void *rule; /* LSM file metadata specific */ member
258 if (!entry->lsm[i].rule) in ima_lsm_update_rules()
263 &entry->lsm[i].rule); in ima_lsm_update_rules()
264 BUG_ON(!entry->lsm[i].rule); in ima_lsm_update_rules()
280 static bool ima_match_rules(struct ima_rule_entry *rule, struct inode *inode, in ima_match_rules() argument
286 if ((rule->flags & IMA_FUNC) && in ima_match_rules()
287 (rule->func != func && func != POST_SETATTR)) in ima_match_rules()
289 if ((rule->flags & IMA_MASK) && in ima_match_rules()
290 (rule->mask != mask && func != POST_SETATTR)) in ima_match_rules()
292 if ((rule->flags & IMA_INMASK) && in ima_match_rules()
293 (!(rule->mask & mask) && func != POST_SETATTR)) in ima_match_rules()
295 if ((rule->flags & IMA_FSMAGIC) in ima_match_rules()
296 && rule->fsmagic != inode->i_sb->s_magic) in ima_match_rules()
298 if ((rule->flags & IMA_FSNAME) in ima_match_rules()
299 && strcmp(rule->fsname, inode->i_sb->s_type->name)) in ima_match_rules()
301 if ((rule->flags & IMA_FSUUID) && in ima_match_rules()
302 !uuid_equal(&rule->fsuuid, &inode->i_sb->s_uuid)) in ima_match_rules()
304 if ((rule->flags & IMA_UID) && !rule->uid_op(cred->uid, rule->uid)) in ima_match_rules()
306 if (rule->flags & IMA_EUID) { in ima_match_rules()
308 if (!rule->uid_op(cred->euid, rule->uid) in ima_match_rules()
309 && !rule->uid_op(cred->suid, rule->uid) in ima_match_rules()
310 && !rule->uid_op(cred->uid, rule->uid)) in ima_match_rules()
312 } else if (!rule->uid_op(cred->euid, rule->uid)) in ima_match_rules()
316 if ((rule->flags & IMA_FOWNER) && in ima_match_rules()
317 !rule->fowner_op(inode->i_uid, rule->fowner)) in ima_match_rules()
324 if (!rule->lsm[i].rule) in ima_match_rules()
333 rule->lsm[i].type, in ima_match_rules()
335 rule->lsm[i].rule, in ima_match_rules()
342 rule->lsm[i].type, in ima_match_rules()
344 rule->lsm[i].rule, in ima_match_rules()
364 static int get_subaction(struct ima_rule_entry *rule, enum ima_hooks func) in get_subaction() argument
366 if (!(rule->flags & IMA_FUNC)) in get_subaction()
637 if (entry->lsm[lsm_rule].rule) in ima_lsm_rule_init()
648 &entry->lsm[lsm_rule].rule); in ima_lsm_rule_init()
649 if (!entry->lsm[lsm_rule].rule) { in ima_lsm_rule_init()
676 static int ima_parse_rule(char *rule, struct ima_rule_entry *entry) in ima_parse_rule() argument
692 while ((p = strsep(&rule, " \t")) != NULL) { in ima_parse_rule()
997 ssize_t ima_parse_add_rule(char *rule) in ima_parse_add_rule() argument
1005 p = strsep(&rule, "\n"); in ima_parse_add_rule()
1217 if (entry->lsm[i].rule) { in ima_policy_show()