]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
apparmor: Fix inverted comparison in cache_hold_inc()
authorEduardo Vasconcelos <eduardo@eduardovasconcelos.com>
Thu, 21 May 2026 15:13:06 +0000 (12:13 -0300)
committerJohn Johansen <john.johansen@canonical.com>
Sun, 14 Jun 2026 03:20:13 +0000 (20:20 -0700)
commit5112ed5258b8d5e0769ae7d2bf9c9dea14c59703
tree4953e26185aaf145c981149d7d0dff51f1c36c29
parentbcd1b34c21748531a3febaf7440632b89d8deab7
apparmor: Fix inverted comparison in cache_hold_inc()

cache_hold_inc() prevents the per-CPU cache hold counter from
rising above MAX_HOLD_COUNT, but the comparison is inverted
(> MAX_HOLD_COUNT instead of <), so the counter never rises
above 0.

This breaks the cache mechanism because since the hold counter
is always 0, the global pool is always attempted first before
falling back to the local cache. The decrement also never occurs,
thus the hold counter is effectively dead.

Fix by changing > to < in cache_hold_inc().

Fixes: 0b6a6b72b329 ("apparmor: document the buffer hold, add an overflow guard")
Signed-off-by: Eduardo Vasconcelos <eduardo@eduardovasconcelos.com>
Signed-off-by: John Johansen <john.johansen@canonical.com>
security/apparmor/lsm.c