diff options
author | James Morris <jmorris@namei.org> | 2010-03-01 09:36:31 +1100 |
---|---|---|
committer | James Morris <jmorris@namei.org> | 2010-03-01 09:36:31 +1100 |
commit | b4ccebdd37ff70d349321a198f416ba737a5e833 (patch) | |
tree | 275d717070346722c3aacd8355fb4f743216e03b /security/selinux/avc.c | |
parent | 30ff056c42c665b9ea535d8515890857ae382540 (diff) | |
parent | ef57471a73b67a7b65fd8708fd55c77cb7c619af (diff) | |
download | linux-b4ccebdd37ff70d349321a198f416ba737a5e833.tar.bz2 |
Merge branch 'next' into for-linus
Diffstat (limited to 'security/selinux/avc.c')
-rw-r--r-- | security/selinux/avc.c | 22 |
1 files changed, 8 insertions, 14 deletions
diff --git a/security/selinux/avc.c b/security/selinux/avc.c index f2dde268165a..db0fd9f33499 100644 --- a/security/selinux/avc.c +++ b/security/selinux/avc.c @@ -489,17 +489,14 @@ void avc_audit(u32 ssid, u32 tsid, struct common_audit_data stack_data; u32 denied, audited; denied = requested & ~avd->allowed; - if (denied) { - audited = denied; - if (!(audited & avd->auditdeny)) - return; - } else if (result) { + if (denied) + audited = denied & avd->auditdeny; + else if (result) audited = denied = requested; - } else { - audited = requested; - if (!(audited & avd->auditallow)) - return; - } + else + audited = requested & avd->auditallow; + if (!audited) + return; if (!a) { a = &stack_data; memset(a, 0, sizeof(*a)); @@ -746,9 +743,7 @@ int avc_has_perm_noaudit(u32 ssid, u32 tsid, else avd = &avd_entry; - rc = security_compute_av(ssid, tsid, tclass, requested, avd); - if (rc) - goto out; + security_compute_av(ssid, tsid, tclass, avd); rcu_read_lock(); node = avc_insert(ssid, tsid, tclass, avd); } else { @@ -770,7 +765,6 @@ int avc_has_perm_noaudit(u32 ssid, u32 tsid, } rcu_read_unlock(); -out: return rc; } |