From: Zhen Lei Date: Thu, 22 Aug 2024 14:08:58 +0000 (+0800) Subject: selinux: simplify avc_xperms_audit_required() X-Git-Tag: v6.12-rc1~199^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=68cfb28332420e0515cb6ffdb46921d59ba9739f;p=thirdparty%2Flinux.git selinux: simplify avc_xperms_audit_required() By associative and commutative laws, the result of the two 'audited' is zero. Take the second 'audited' as an example: 1) audited = requested & avd->auditallow; 2) audited &= ~requested; ==> audited = ~requested & (requested & avd->auditallow); ==> audited = (~requested & requested) & avd->auditallow; ==> audited = 0 & avd->auditallow; ==> audited = 0; In fact, it is more readable to directly write zero. The value of the first 'audited' is 0 because AUDIT is not allowed. The second 'audited' is zero because there is no AUDITALLOW permission. Signed-off-by: Zhen Lei Signed-off-by: Paul Moore --- diff --git a/security/selinux/avc.c b/security/selinux/avc.c index 1ec377ce6d226..e0d1a9dfaceea 100644 --- a/security/selinux/avc.c +++ b/security/selinux/avc.c @@ -388,7 +388,7 @@ static inline u32 avc_xperms_audit_required(u32 requested, audited = denied & avd->auditdeny; if (audited && xpd) { if (avc_xperms_has_perm(xpd, perm, XPERMS_DONTAUDIT)) - audited &= ~requested; + audited = 0; } } else if (result) { audited = denied = requested; @@ -396,7 +396,7 @@ static inline u32 avc_xperms_audit_required(u32 requested, audited = requested & avd->auditallow; if (audited && xpd) { if (!avc_xperms_has_perm(xpd, perm, XPERMS_AUDITALLOW)) - audited &= ~requested; + audited = 0; } }