summaryrefslogtreecommitdiffstats
path: root/sys/security/mac/mac_pipe.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/security/mac/mac_pipe.c')
-rw-r--r--sys/security/mac/mac_pipe.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/sys/security/mac/mac_pipe.c b/sys/security/mac/mac_pipe.c
index 6b2e653..17b37d8 100644
--- a/sys/security/mac/mac_pipe.c
+++ b/sys/security/mac/mac_pipe.c
@@ -697,15 +697,23 @@ mac_init_ifnet(struct ifnet *ifp)
mac_init_ifnet_label(&ifp->if_label);
}
-void
-mac_init_ipq(struct ipq *ipq)
+int
+mac_init_ipq(struct ipq *ipq, int flag)
{
+ int error;
mac_init_label(&ipq->ipq_label);
- MAC_PERFORM(init_ipq_label, &ipq->ipq_label);
+
+ MAC_CHECK(init_ipq_label, &ipq->ipq_label, flag);
+ if (error) {
+ MAC_PERFORM(destroy_ipq_label, &ipq->ipq_label);
+ mac_destroy_label(&ipq->ipq_label);
+ }
#ifdef MAC_DEBUG
- atomic_add_int(&nmacipqs, 1);
+ if (error == 0)
+ atomic_add_int(&nmacipqs, 1);
#endif
+ return (error);
}
int
OpenPOWER on IntegriCloud