summaryrefslogtreecommitdiffstats
path: root/lib/bitmap.c
diff options
context:
space:
mode:
authorJohn Johansen <john.johansen@canonical.com>2012-10-24 06:27:32 -0700
committerJames Morris <james.l.morris@oracle.com>2012-10-25 02:12:50 +1100
commit2e680dd61e80592385338bfbeb86833d1c60546c (patch)
treea62b80465dd15a7fddb34367ccb7c94e47951dc5 /lib/bitmap.c
parent0e9e3e306c7e472bdcffa34c4c4584301eda03b3 (diff)
downloadop-kernel-dev-2e680dd61e80592385338bfbeb86833d1c60546c.zip
op-kernel-dev-2e680dd61e80592385338bfbeb86833d1c60546c.tar.gz
apparmor: fix IRQ stack overflow during free_profile
BugLink: http://bugs.launchpad.net/bugs/1056078 Profile replacement can cause long chains of profiles to build up when the profile being replaced is pinned. When the pinned profile is finally freed, it puts the reference to its replacement, which may in turn nest another call to free_profile on the stack. Because this may happen for each profile in the replacedby chain this can result in a recusion that causes the stack to overflow. Break this nesting by directly walking the chain of replacedby profiles (ie. use iteration instead of recursion to free the list). This results in at most 2 levels of free_profile being called, while freeing a replacedby chain. Signed-off-by: John Johansen <john.johansen@canonical.com> Signed-off-by: James Morris <james.l.morris@oracle.com>
Diffstat (limited to 'lib/bitmap.c')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud