mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs.git
synced 2026-10-28 12:53:14 +01:00
apparmor: fix potential UAF in aa_replace_profiles
The function aa_replace_profiles was accessing udata->size after calling
aa_put_loaddata(udata), causing a potential UAF.
Fixed this by saving the size to a local variable before dropping the
reference.
Fixes: 5ac8c355ae ("apparmor: allow introspecting the loaded policy pre internal transform")
Reviewed-by: Georgia Garcia <[email protected]>
Signed-off-by: Maxime Bélair <[email protected]>
Signed-off-by: John Johansen <[email protected]>
This commit is contained in:
1 parent
b9b864fc72
commit
7b42f95813
1 file changed
+3
-1
@@ -1378,13 +1378,15 @@ ssize_t aa_replace_profiles(struct aa_ns *policy_ns, struct aa_label *label,
|
||||
mutex_unlock(&ns->lock);
|
||||
|
||||
out:
|
||||
ssize_t udata_sz = udata->size;
|
||||
|
||||
aa_put_ns(ns);
|
||||
aa_put_profile_loaddata(udata);
|
||||
kfree(ns_name);
|
||||
|
||||
if (error)
|
||||
return error;
|
||||
return udata->size;
|
||||
return udata_sz;
|
||||
|
||||
fail_lock:
|
||||
mutex_unlock(&ns->lock);
|
||||
|
||||
Reference in new issue
Block a user