コード例 #1
0
void
mac_mbuf_copy(struct mbuf *m_from, struct mbuf *m_to)
{
	struct label *src_label, *dest_label;

	if (mac_policy_count == 0)
		return;

	src_label = mac_mbuf_to_label(m_from);
	dest_label = mac_mbuf_to_label(m_to);

	MAC_POLICY_PERFORM_NOSLEEP(mbuf_copy_label, src_label, dest_label);
}
コード例 #2
0
ファイル: mac_inet6.c プロジェクト: FelixHaller/libuinet
void
mac_netinet6_nd6_send(struct ifnet *ifp, struct mbuf *m)
{
	struct label *mlabel;

	if (mac_policy_count == 0)
		return;

	mlabel = mac_mbuf_to_label(m);

	MAC_POLICY_PERFORM_NOSLEEP(netinet6_nd6_send, ifp, ifp->if_label, m,
	    mlabel);
}
コード例 #3
0
ファイル: mac_socket.c プロジェクト: 2asoft/freebsd
void
mac_socket_create_mbuf(struct socket *so, struct mbuf *m)
{
	struct label *label;

	if (mac_policy_count == 0)
		return;

	label = mac_mbuf_to_label(m);

	MAC_POLICY_PERFORM_NOSLEEP(socket_create_mbuf, so, so->so_label, m,
	    label);
}
コード例 #4
0
ファイル: mac_inet6.c プロジェクト: FelixHaller/libuinet
void
mac_ip6q_update(struct mbuf *m, struct ip6q *q6)
{
	struct label *label;

	if (mac_policy_count == 0)
		return;

	label = mac_mbuf_to_label(m);

	MAC_POLICY_PERFORM_NOSLEEP(ip6q_update, m, label, q6,
	    q6->ip6q_label);
}
コード例 #5
0
ファイル: mac_socket.c プロジェクト: 2asoft/freebsd
void
mac_socketpeer_set_from_mbuf(struct mbuf *m, struct socket *so)
{
	struct label *label;

	if (mac_policy_count == 0)
		return;

	label = mac_mbuf_to_label(m);

	MAC_POLICY_PERFORM_NOSLEEP(socketpeer_set_from_mbuf, m, label, so,
	    so->so_peerlabel);
}
コード例 #6
0
ファイル: mac_socket.c プロジェクト: Prajna/xnu
void
mac_socketpeer_label_associate_mbuf(struct mbuf *mbuf, struct socket *so)
{
	struct label *label;

	if (!mac_socket_enforce && !mac_net_enforce)
		return;

	label = mac_mbuf_to_label(mbuf);

	/* Policy must deal with NULL label (unlabeled mbufs) */
	MAC_PERFORM(socketpeer_label_associate_mbuf, mbuf, label,
		    (socket_t)so, so->so_peerlabel);
}
コード例 #7
0
void
mac_netatalk_aarp_send(struct ifnet *ifp, struct mbuf *m)
{
	struct label *mlabel;

	if (mac_policy_count == 0)
		return;

	mlabel = mac_mbuf_to_label(m);

	MAC_IFNET_LOCK(ifp);
	MAC_POLICY_PERFORM_NOSLEEP(netatalk_aarp_send, ifp, ifp->if_label, m,
	    mlabel);
	MAC_IFNET_UNLOCK(ifp);
}
コード例 #8
0
void
mac_ifnet_create_mbuf(struct ifnet *ifp, struct mbuf *m)
{
	struct label *label;

	if (mac_policy_count == 0)
		return;

	label = mac_mbuf_to_label(m);

	MAC_IFNET_LOCK(ifp);
	MAC_POLICY_PERFORM_NOSLEEP(ifnet_create_mbuf, ifp, ifp->if_label, m,
	    label);
	MAC_IFNET_UNLOCK(ifp);
}
コード例 #9
0
void
mac_bpfdesc_create_mbuf(struct bpf_d *d, struct mbuf *m)
{
	struct label *label;

	BPFD_LOCK_ASSERT(d);

	if (mac_policy_count == 0)
		return;

	label = mac_mbuf_to_label(m);

	MAC_POLICY_PERFORM_NOSLEEP(bpfdesc_create_mbuf, d, d->bd_label, m,
	    label);
}
コード例 #10
0
ファイル: mac_socket.c プロジェクト: Prajna/xnu
int
mac_socket_check_deliver(struct socket *so, struct mbuf *mbuf)
{
	struct label *label;
	int error;

	if (!mac_socket_enforce)
		return 0;

	label = mac_mbuf_to_label(mbuf);

	/* Policy must deal with NULL label (unlabeled mbufs) */
	MAC_CHECK(socket_check_deliver,
		  (socket_t)so, so->so_label, mbuf, label);
	return (error);
}
コード例 #11
0
ファイル: mac_inet6.c プロジェクト: FelixHaller/libuinet
int
mac_ip6q_match(struct mbuf *m, struct ip6q *q6)
{
	struct label *label;
	int result;

	if (mac_policy_count == 0)
		return (1);

	label = mac_mbuf_to_label(m);

	result = 1;
	MAC_POLICY_BOOLEAN_NOSLEEP(ip6q_match, &&, m, label, q6,
	    q6->ip6q_label);

	return (result);
}
コード例 #12
0
ファイル: mac_socket.c プロジェクト: JackieXie168/xnu
void
mac_socketpeer_label_associate_mbuf(struct mbuf *mbuf, struct socket *so)
{
	struct label *label;

#if SECURITY_MAC_CHECK_ENFORCE
    /* 21167099 - only check if we allow write */
    if (!mac_socket_enforce && !mac_net_enforce)
        return;
#endif

	label = mac_mbuf_to_label(mbuf);

	/* Policy must deal with NULL label (unlabeled mbufs) */
	MAC_PERFORM(socketpeer_label_associate_mbuf, mbuf, label,
		    (socket_t)so, so->so_peerlabel);
}
コード例 #13
0
ファイル: mac_socket.c プロジェクト: 2asoft/freebsd
int
mac_socket_check_deliver(struct socket *so, struct mbuf *m)
{
	struct label *label;
	int error;

	if (mac_policy_count == 0)
		return (0);

	label = mac_mbuf_to_label(m);

	MAC_POLICY_CHECK_NOSLEEP(socket_check_deliver, so, so->so_label, m,
	    label);
	MAC_CHECK_PROBE2(socket_check_deliver, error, so, m);

	return (error);
}
コード例 #14
0
ファイル: mac_socket.c プロジェクト: JackieXie168/xnu
int
mac_socket_check_deliver(struct socket *so, struct mbuf *mbuf)
{
	struct label *label;
	int error;

#if SECURITY_MAC_CHECK_ENFORCE
    /* 21167099 - only check if we allow write */
    if (!mac_socket_enforce)
        return 0;
#endif

	label = mac_mbuf_to_label(mbuf);

	/* Policy must deal with NULL label (unlabeled mbufs) */
	MAC_CHECK(socket_check_deliver,
		  (socket_t)so, so->so_label, mbuf, label);
	return (error);
}
コード例 #15
0
int
mac_ifnet_check_transmit(struct ifnet *ifp, struct mbuf *m)
{
	struct label *label;
	int error;

	M_ASSERTPKTHDR(m);

	if (mac_policy_count == 0)
		return (0);

	label = mac_mbuf_to_label(m);

	MAC_IFNET_LOCK(ifp);
	MAC_POLICY_CHECK_NOSLEEP(ifnet_check_transmit, ifp, ifp->if_label, m,
	    label);
	MAC_CHECK_PROBE2(ifnet_check_transmit, error, ifp, m);
	MAC_IFNET_UNLOCK(ifp);

	return (error);
}