Commit 0ea4fba1 authored by Zhen Lei's avatar Zhen Lei Committed by Gu Bowen
Browse files

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: fa1aa143 ("selinux: extended permissions for ioctls")
Signed-off-by: default avatarZhen Lei <thunder.leizhen@huawei.com>
Acked-by: default avatarStephen Smalley <stephen.smalley.work@gmail.com>
Signed-off-by: default avatarPaul Moore <paul@paul-moore.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: default avatarGu Bowen <gubowen5@huawei.com>
parent 3e047c2e
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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;
}