Lines Matching +full:current +full:- +full:limit

1 // SPDX-License-Identifier: GPL-2.0-only
7 * Copyright (C) 1998-2008 Novell/SUSE
8 * Copyright 2009-2010 Canonical Ltd.
36 rlim_names[ad->rlim.rlim], ad->rlim.max); in audit_cb()
37 if (ad->peer) { in audit_cb()
39 aa_label_xaudit(ab, labels_ns(ad->subj_label), ad->peer, in audit_cb()
45 * audit_resource - audit setting resource limit
54 * Returns: 0 or ad->error else other error code on failure
75 * aa_map_resource - map compiled policy resource to internal #
78 * Returns: resource # for the current architecture.
92 struct aa_ruleset *rules = profile->label.rules[0]; in profile_setrlimit()
95 if (rules->rlimits.mask & (1 << resource) && new_rlim->rlim_max > in profile_setrlimit()
96 rules->rlimits.limits[resource].rlim_max) in profile_setrlimit()
97 e = -EACCES; in profile_setrlimit()
98 return audit_resource(subj_cred, profile, resource, new_rlim->rlim_max, in profile_setrlimit()
103 * aa_task_setrlimit - test permission to set an rlimit
104 * @subj_cred: cred setting the limit
108 * @new_rlim: the new resource limit (NOT NULL)
110 * Control raising the processes hard limit.
126 /* TODO: extend resource control to handle other (non current) in aa_task_setrlimit()
137 new_rlim->rlim_max, peer, in aa_task_setrlimit()
138 "cap_sys_resource", -EACCES)); in aa_task_setrlimit()
149 * __aa_transition_rlimits - apply new profile rlimits
163 /* for any rlimits the profile controlled, reset the soft limit in __aa_transition_rlimits()
164 * to the lesser of the tasks hard limit and the init tasks soft limit in __aa_transition_rlimits()
167 struct aa_ruleset *rules = old->label.rules[0]; in __aa_transition_rlimits()
168 if (rules->rlimits.mask) { in __aa_transition_rlimits()
173 if (rules->rlimits.mask & mask) { in __aa_transition_rlimits()
174 rlim = current->signal->rlim + j; in __aa_transition_rlimits()
175 initrlim = init_task.signal->rlim + j; in __aa_transition_rlimits()
176 rlim->rlim_cur = min(rlim->rlim_max, in __aa_transition_rlimits()
177 initrlim->rlim_cur); in __aa_transition_rlimits()
185 struct aa_ruleset *rules = new->label.rules[0]; in __aa_transition_rlimits()
188 if (!rules->rlimits.mask) in __aa_transition_rlimits()
191 if (!(rules->rlimits.mask & mask)) in __aa_transition_rlimits()
194 rlim = current->signal->rlim + j; in __aa_transition_rlimits()
195 rlim->rlim_max = min(rlim->rlim_max, in __aa_transition_rlimits()
196 rules->rlimits.limits[j].rlim_max); in __aa_transition_rlimits()
197 /* soft limit should not exceed hard limit */ in __aa_transition_rlimits()
198 rlim->rlim_cur = min(rlim->rlim_cur, rlim->rlim_max); in __aa_transition_rlimits()