| From 3258003c56b414c36cf171bcff15ce1f1597cf59 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Sun, 9 Nov 2025 14:16:54 -0800 |
| Subject: apparmor: fix rlimit for posix cpu timers |
| |
| From: John Johansen <john.johansen@canonical.com> |
| |
| [ Upstream commit 6ca56813f4a589f536adceb42882855d91fb1125 ] |
| |
| Posix cpu timers requires an additional step beyond setting the rlimit. |
| Refactor the code so its clear when what code is setting the |
| limit and conditionally update the posix cpu timers when appropriate. |
| |
| Fixes: baa73d9e478ff ("posix-timers: Make them configurable") |
| Reviewed-by: Georgia Garcia <georgia.garcia@canonical.com> |
| Signed-off-by: John Johansen <john.johansen@canonical.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| security/apparmor/resource.c | 5 +++++ |
| 1 file changed, 5 insertions(+) |
| |
| diff --git a/security/apparmor/resource.c b/security/apparmor/resource.c |
| index dcc94c3153d51..a7eee815f1215 100644 |
| --- a/security/apparmor/resource.c |
| +++ b/security/apparmor/resource.c |
| @@ -201,6 +201,11 @@ void __aa_transition_rlimits(struct aa_label *old_l, struct aa_label *new_l) |
| rules->rlimits.limits[j].rlim_max); |
| /* soft limit should not exceed hard limit */ |
| rlim->rlim_cur = min(rlim->rlim_cur, rlim->rlim_max); |
| + if (j == RLIMIT_CPU && |
| + rlim->rlim_cur != RLIM_INFINITY && |
| + IS_ENABLED(CONFIG_POSIX_TIMERS)) |
| + (void) update_rlimit_cpu(current->group_leader, |
| + rlim->rlim_cur); |
| } |
| } |
| } |
| -- |
| 2.51.0 |
| |