aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libselinux/ChangeLog3
-rw-r--r--libselinux/VERSION2
-rw-r--r--libselinux/src/avc.c12
3 files changed, 6 insertions, 11 deletions
diff --git a/libselinux/ChangeLog b/libselinux/ChangeLog
index db95038d..75d63178 100644
--- a/libselinux/ChangeLog
+++ b/libselinux/ChangeLog
@@ -1,3 +1,6 @@
+2.2.2 2013-12-30
+ * Fix userspace AVC handling of per-domain permissive mode.
+
2.2.1 2013-11-06
* Remove -lpthread from pkg-config file; it is not required.
diff --git a/libselinux/VERSION b/libselinux/VERSION
index c043eea7..b1b25a5f 100644
--- a/libselinux/VERSION
+++ b/libselinux/VERSION
@@ -1 +1 @@
-2.2.1
+2.2.2
diff --git a/libselinux/src/avc.c b/libselinux/src/avc.c
index f14eeb7a..1f7aca9f 100644
--- a/libselinux/src/avc.c
+++ b/libselinux/src/avc.c
@@ -336,11 +336,7 @@ static inline struct avc_node *avc_reclaim_node(void)
static inline void avc_clear_avc_entry(struct avc_entry *ae)
{
- ae->ssid = ae->tsid = ae->create_sid = NULL;
- ae->tclass = 0;
- ae->avd.allowed = ae->avd.decided = 0;
- ae->avd.auditallow = ae->avd.auditdeny = 0;
- ae->used = 0;
+ memset(ae, 0, sizeof(*ae));
}
static inline struct avc_node *avc_claim_node(security_id_t ssid,
@@ -488,11 +484,7 @@ static int avc_insert(security_id_t ssid, security_id_t tsid,
goto out;
}
- node->ae.avd.allowed = ae->avd.allowed;
- node->ae.avd.decided = ae->avd.decided;
- node->ae.avd.auditallow = ae->avd.auditallow;
- node->ae.avd.auditdeny = ae->avd.auditdeny;
- node->ae.avd.seqno = ae->avd.seqno;
+ memcpy(&node->ae.avd, &ae->avd, sizeof(ae->avd));
aeref->ae = &node->ae;
out:
return rc;