summaryrefslogtreecommitdiff
path: root/security
diff options
context:
space:
mode:
authorZhen Lei <thunder.leizhen@huawei.com>2024-08-06 09:51:13 +0300
committerPaul Moore <paul@paul-moore.com>2024-08-07 00:52:27 +0300
commit379d9af3f3da2da1bbfa67baf1820c72a080d1f1 (patch)
tree82bf6a3939395672440a30bd4a33dbcacb4186c6 /security
parent8400291e289ee6b2bf9779ff1c83a291501f017b (diff)
downloadlinux-379d9af3f3da2da1bbfa67baf1820c72a080d1f1.tar.xz
selinux: fix potential counting error in avc_add_xperms_decision()
The count increases only when a node is successfully added to the linked list. Cc: stable@vger.kernel.org Fixes: fa1aa143ac4a ("selinux: extended permissions for ioctls") Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com> Acked-by: Stephen Smalley <stephen.smalley.work@gmail.com> Signed-off-by: Paul Moore <paul@paul-moore.com>
Diffstat (limited to 'security')
-rw-r--r--security/selinux/avc.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/security/selinux/avc.c b/security/selinux/avc.c
index 32eb67fb3e42..7087cd2b802d 100644
--- a/security/selinux/avc.c
+++ b/security/selinux/avc.c
@@ -330,12 +330,12 @@ static int avc_add_xperms_decision(struct avc_node *node,
{
struct avc_xperms_decision_node *dest_xpd;
- node->ae.xp_node->xp.len++;
dest_xpd = avc_xperms_decision_alloc(src->used);
if (!dest_xpd)
return -ENOMEM;
avc_copy_xperms_decision(&dest_xpd->xpd, src);
list_add(&dest_xpd->xpd_list, &node->ae.xp_node->xpd_head);
+ node->ae.xp_node->xp.len++;
return 0;
}