selinux: fix potential counting error in avc_add_xperms_decision()

commit 379d9af3f3da2da1bbfa67baf1820c72a080d1f1 upstream.

The count increases only when a node is successfully added to
the linked list.

Cc: stable@vger.kernel.org
Fixes: fa1aa143ac ("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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Zhen Lei 2024-08-06 14:51:13 +08:00 коммит произвёл Greg Kroah-Hartman
Родитель 5053581fe5
Коммит 3337cb6327
1 изменённых файлов: 1 добавлений и 1 удалений

Просмотреть файл

@ -332,12 +332,12 @@ static int avc_add_xperms_decision(struct avc_node *node,
{ {
struct avc_xperms_decision_node *dest_xpd; struct avc_xperms_decision_node *dest_xpd;
node->ae.xp_node->xp.len++;
dest_xpd = avc_xperms_decision_alloc(src->used); dest_xpd = avc_xperms_decision_alloc(src->used);
if (!dest_xpd) if (!dest_xpd)
return -ENOMEM; return -ENOMEM;
avc_copy_xperms_decision(&dest_xpd->xpd, src); avc_copy_xperms_decision(&dest_xpd->xpd, src);
list_add(&dest_xpd->xpd_list, &node->ae.xp_node->xpd_head); list_add(&dest_xpd->xpd_list, &node->ae.xp_node->xpd_head);
node->ae.xp_node->xp.len++;
return 0; return 0;
} }