Lines Matching defs:rule

32 	struct setid_rule *rule)
53 if (rule->type == UID){
54 rule->src_id.uid = make_kuid(file->f_cred->user_ns, parsed_parent);
55 rule->dst_id.uid = make_kuid(file->f_cred->user_ns, parsed_child);
56 if (!uid_valid(rule->src_id.uid) || !uid_valid(rule->dst_id.uid))
58 } else if (rule->type == GID){
59 rule->src_id.gid = make_kgid(file->f_cred->user_ns, parsed_parent);
60 rule->dst_id.gid = make_kgid(file->f_cred->user_ns, parsed_child);
61 if (!gid_valid(rule->src_id.gid) || !gid_valid(rule->dst_id.gid))
64 /* Error, rule->type is an invalid type */
75 struct setid_rule *rule;
78 hash_for_each_safe(pol->rules, bucket, tmp, rule, next)
79 kfree(rule);
88 static void insert_rule(struct setid_ruleset *pol, struct setid_rule *rule)
91 hash_add(pol->rules, &rule->next, __kuid_val(rule->src_id.uid));
93 hash_add(pol->rules, &rule->next, __kgid_val(rule->src_id.gid));
101 struct setid_rule *rule, *nrule;
104 hash_for_each(pol->rules, bucket, rule, next) {
105 if (_setid_policy_lookup(pol, rule->dst_id, INVALID_ID) == SIDPOL_DEFAULT) {
108 __kuid_val(rule->src_id.uid),
109 __kuid_val(rule->dst_id.uid));
112 __kgid_val(rule->src_id.gid),
113 __kgid_val(rule->dst_id.gid));
125 nrule->src_id.uid = rule->dst_id.uid;
126 nrule->dst_id.uid = rule->dst_id.uid;
129 nrule->src_id.gid = rule->dst_id.gid;
130 nrule->dst_id.gid = rule->dst_id.gid;
166 struct setid_rule *rule;
175 rule = kmalloc(sizeof(struct setid_rule), GFP_KERNEL);
176 if (!rule) {
181 rule->type = policy_type;
182 err = parse_policy_line(file, p, rule);
186 if (_setid_policy_lookup(pol, rule->src_id, rule->dst_id) == SIDPOL_ALLOWED) {
192 insert_rule(pol, rule);
197 kfree(rule);