From 0ea4fba1fc4cc9d4e5219d4271991a789316f9a9 Mon Sep 17 00:00:00 2001 From: Zhen Lei Date: Fri, 18 Oct 2024 16:19:38 +0800 Subject: [PATCH] selinux: fix potential counting error in avc_add_xperms_decision() stable inclusion from stable-v4.19.321 commit 5d93f05ed258c92a8925b74bc36101af36c22732 category: bugfix bugzilla: https://gitee.com/openeuler/kernel/issues/IAY2ZF Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=5d93f05ed258c92a8925b74bc36101af36c22732 -------------------------------- commit 379d9af3f3da2da1bbfa67baf1820c72a080d1f1 upstream. 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 Acked-by: Stephen Smalley Signed-off-by: Paul Moore Signed-off-by: Greg Kroah-Hartman Signed-off-by: Gu Bowen --- security/selinux/avc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/security/selinux/avc.c b/security/selinux/avc.c index 6a8f9cfaa6f9..726f944bd798 100644 --- a/security/selinux/avc.c +++ b/security/selinux/avc.c @@ -400,12 +400,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; } -- Gitee