]> git.saurik.com Git - apple/xnu.git/blobdiff - security/mac_label.c
xnu-2422.90.20.tar.gz
[apple/xnu.git] / security / mac_label.c
index ef2c09e744f31f7775141afba337a3c328e7651d..b05c43b84e59c7dbf1583c7b11f82e01a121a37d 100644 (file)
@@ -48,6 +48,7 @@ mac_labelzone_init(void)
            sizeof(struct label), "MAC Labels");
        zone_change(zone_label, Z_EXPAND, TRUE);
        zone_change(zone_label, Z_EXHAUST, FALSE);
+       zone_change(zone_label, Z_CALLERACCT, FALSE);
 }
 
 struct label *
@@ -79,3 +80,23 @@ mac_labelzone_free(struct label *l)
        bzero(l, sizeof(struct label));
        zfree(zone_label, l);
 }
+
+/*
+ * Functions used by policy modules to get and set label values.
+ */
+intptr_t
+mac_label_get(struct label *l, int slot)
+{
+       KASSERT(l != NULL, ("mac_label_get: NULL label"));
+
+       return ((intptr_t) (l->l_perpolicy[slot].l_ptr));
+}
+
+void
+mac_label_set(struct label *l, int slot, intptr_t v)
+{
+       KASSERT(l != NULL, ("mac_label_set: NULL label"));
+
+       l->l_perpolicy[slot].l_ptr = (void *) v;
+}
+