diff --git a/security/selinux/avc.c b/security/selinux/avc.c index c223a32c0bb3..21e48baf0bbb 100644 --- a/security/selinux/avc.c +++ b/security/selinux/avc.c @@ -729,12 +729,10 @@ inline int avc_has_perm_noaudit(u32 ssid, u32 tsid, rcu_read_lock(); node = avc_lookup(ssid, tsid, tclass); - if (unlikely(!node)) { + if (unlikely(!node)) node = avc_compute_av(ssid, tsid, tclass, avd); - } else { + else memcpy(avd, &node->ae.avd, sizeof(*avd)); - avd = &node->ae.avd; - } denied = requested & ~(avd->allowed); if (unlikely(denied))