Skip to content

Commit f3bef67

Browse files
stephensmalleypcmoore
authored andcommitted
selinux: fix bug in conditional rules handling
commit fa1aa14 ("selinux: extended permissions for ioctls") introduced a bug into the handling of conditional rules, skipping the processing entirely when the caller does not provide an extended permissions (xperms) structure. Access checks from userspace using /sys/fs/selinux/access do not include such a structure since that interface does not presently expose extended permission information. As a result, conditional rules were being ignored entirely on userspace access requests, producing denials when access was allowed by conditional rules in the policy. Fix the bug by only skipping computation of extended permissions in this situation, not the entire conditional rules processing. Reported-by: Laurent Bigonville <bigon@debian.org> Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov> [PM: fixed long lines in patch description] Cc: stable@vger.kernel.org # 4.3 Signed-off-by: Paul Moore <pmoore@redhat.com>
1 parent 6320565 commit f3bef67

1 file changed

Lines changed: 2 additions & 2 deletions

File tree

security/selinux/ss/conditional.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -638,7 +638,7 @@ void cond_compute_av(struct avtab *ctab, struct avtab_key *key,
638638
{
639639
struct avtab_node *node;
640640

641-
if (!ctab || !key || !avd || !xperms)
641+
if (!ctab || !key || !avd)
642642
return;
643643

644644
for (node = avtab_search_node(ctab, key); node;
@@ -657,7 +657,7 @@ void cond_compute_av(struct avtab *ctab, struct avtab_key *key,
657657
if ((u16)(AVTAB_AUDITALLOW|AVTAB_ENABLED) ==
658658
(node->key.specified & (AVTAB_AUDITALLOW|AVTAB_ENABLED)))
659659
avd->auditallow |= node->datum.u.data;
660-
if ((node->key.specified & AVTAB_ENABLED) &&
660+
if (xperms && (node->key.specified & AVTAB_ENABLED) &&
661661
(node->key.specified & AVTAB_XPERMS))
662662
services_compute_xperms_drivers(xperms, node);
663663
}

0 commit comments

Comments
 (0)