Lines Matching refs:pol

72 	struct setid_ruleset *pol =  in __release_ruleset()  local
78 hash_for_each_safe(pol->rules, bucket, tmp, rule, next) in __release_ruleset()
80 kfree(pol->policy_str); in __release_ruleset()
81 kfree(pol); in __release_ruleset()
84 static void release_ruleset(struct setid_ruleset *pol){ in release_ruleset() argument
85 call_rcu(&pol->rcu, __release_ruleset); in release_ruleset()
88 static void insert_rule(struct setid_ruleset *pol, struct setid_rule *rule) in insert_rule() argument
90 if (pol->type == UID) in insert_rule()
91 hash_add(pol->rules, &rule->next, __kuid_val(rule->src_id.uid)); in insert_rule()
92 else if (pol->type == GID) in insert_rule()
93 hash_add(pol->rules, &rule->next, __kgid_val(rule->src_id.gid)); in insert_rule()
98 static int verify_ruleset(struct setid_ruleset *pol) in verify_ruleset() argument
104 hash_for_each(pol->rules, bucket, rule, next) { in verify_ruleset()
105 if (_setid_policy_lookup(pol, rule->dst_id, INVALID_ID) == SIDPOL_DEFAULT) { in verify_ruleset()
106 if (pol->type == UID) { in verify_ruleset()
110 } else if (pol->type == GID) { in verify_ruleset()
124 if (pol->type == UID){ in verify_ruleset()
133 insert_rule(pol, nrule); in verify_ruleset()
142 struct setid_ruleset *pol; in handle_policy_update() local
146 pol = kmalloc(sizeof(struct setid_ruleset), GFP_KERNEL); in handle_policy_update()
147 if (!pol) in handle_policy_update()
149 pol->policy_str = NULL; in handle_policy_update()
150 pol->type = policy_type; in handle_policy_update()
151 hash_init(pol->rules); in handle_policy_update()
158 pol->policy_str = kstrdup(buf, GFP_KERNEL); in handle_policy_update()
159 if (pol->policy_str == NULL) { in handle_policy_update()
186 if (_setid_policy_lookup(pol, rule->src_id, rule->dst_id) == SIDPOL_ALLOWED) { in handle_policy_update()
192 insert_rule(pol, rule); in handle_policy_update()
201 err = verify_ruleset(pol); in handle_policy_update()
213 pol = rcu_replace_pointer(safesetid_setuid_rules, pol, in handle_policy_update()
218 pol = rcu_replace_pointer(safesetid_setgid_rules, pol, in handle_policy_update()
230 if (pol) in handle_policy_update()
231 release_ruleset(pol); in handle_policy_update()
267 struct setid_ruleset *pol; in safesetid_file_read() local
271 pol = rcu_dereference_protected(ruleset, lockdep_is_held(policy_update_lock)); in safesetid_file_read()
272 if (pol) { in safesetid_file_read()
273 kbuf = pol->policy_str; in safesetid_file_read()