From 8f7c96c696186ad8301497ef81fd270628a641d6 Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Tue, 24 May 2011 13:48:51 -0700 Subject: [PATCH] --- yaml --- r: 252088 b: refs/heads/master c: f01e1af445fac107e91d62a2d59dd535f633810b h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/security/selinux/avc.c | 12 ++---------- trunk/security/selinux/ss/services.c | 3 ++- 3 files changed, 5 insertions(+), 12 deletions(-) diff --git a/[refs] b/[refs] index 9b85b5f35dfc..1d54ce23aa20 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: bc9bc72e2f9bb07384c00604d1a40d0b5f62be6c +refs/heads/master: f01e1af445fac107e91d62a2d59dd535f633810b diff --git a/trunk/security/selinux/avc.c b/trunk/security/selinux/avc.c index fcb89cb0f223..d515b2128a4e 100644 --- a/trunk/security/selinux/avc.c +++ b/trunk/security/selinux/avc.c @@ -752,10 +752,9 @@ int avc_ss_reset(u32 seqno) int avc_has_perm_noaudit(u32 ssid, u32 tsid, u16 tclass, u32 requested, unsigned flags, - struct av_decision *in_avd) + struct av_decision *avd) { struct avc_node *node; - struct av_decision avd_entry, *avd; int rc = 0; u32 denied; @@ -766,18 +765,11 @@ int avc_has_perm_noaudit(u32 ssid, u32 tsid, node = avc_lookup(ssid, tsid, tclass); if (unlikely(!node)) { rcu_read_unlock(); - - if (in_avd) - avd = in_avd; - else - avd = &avd_entry; - security_compute_av(ssid, tsid, tclass, avd); rcu_read_lock(); node = avc_insert(ssid, tsid, tclass, avd); } else { - if (in_avd) - memcpy(in_avd, &node->ae.avd, sizeof(*in_avd)); + memcpy(avd, &node->ae.avd, sizeof(*avd)); avd = &node->ae.avd; } diff --git a/trunk/security/selinux/ss/services.c b/trunk/security/selinux/ss/services.c index c3e4b52699f4..973e00e34fa9 100644 --- a/trunk/security/selinux/ss/services.c +++ b/trunk/security/selinux/ss/services.c @@ -2217,10 +2217,11 @@ int security_get_user_sids(u32 fromsid, goto out; } for (i = 0, j = 0; i < mynel; i++) { + struct av_decision dummy_avd; rc = avc_has_perm_noaudit(fromsid, mysids[i], SECCLASS_PROCESS, /* kernel value */ PROCESS__TRANSITION, AVC_STRICT, - NULL); + &dummy_avd); if (!rc) mysids2[j++] = mysids[i]; cond_resched();