diff options
| author | Robert Watson <rwatson@FreeBSD.org> | 2002-07-31 01:51:34 +0000 |
|---|---|---|
| committer | Robert Watson <rwatson@FreeBSD.org> | 2002-07-31 01:51:34 +0000 |
| commit | e32a5b94d8ab2c7f6cd48ab4cbc159273a30cda2 (patch) | |
| tree | 1fdf40f8f9ac5ce0d5a076ef950fc076843e123e | |
| parent | a3abeda755f494d9f0236844fec1767fb49794cb (diff) | |
Notes
| -rw-r--r-- | sys/kern/uipc_mbuf.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/sys/kern/uipc_mbuf.c b/sys/kern/uipc_mbuf.c index e8a679ed8d86..4d66465b7c4e 100644 --- a/sys/kern/uipc_mbuf.c +++ b/sys/kern/uipc_mbuf.c @@ -34,12 +34,15 @@ * $FreeBSD$ */ +#include "opt_mac.h" #include "opt_param.h" + #include <sys/param.h> #include <sys/systm.h> #include <sys/kernel.h> #include <sys/lock.h> #include <sys/malloc.h> +#include <sys/mac.h> #include <sys/mbuf.h> #include <sys/sysctl.h> #include <sys/domain.h> @@ -75,9 +78,17 @@ m_copy_pkthdr(struct mbuf *to, struct mbuf *from) KASSERT(to->m_flags & M_PKTHDR, ("m_copy_pkthdr() called on non-header")); #endif +#ifdef MAC + if (to->m_flags & M_PKTHDR) + mac_destroy_mbuf(to); +#endif to->m_data = to->m_pktdat; to->m_flags = from->m_flags & M_COPYFLAGS; to->m_pkthdr = from->m_pkthdr; +#ifdef MAC + mac_init_mbuf(to, 1); /* XXXMAC no way to fail */ + mac_create_mbuf_from_mbuf(from, to); +#endif from->m_pkthdr.aux = NULL; } @@ -98,6 +109,9 @@ m_prepend(struct mbuf *m, int len, int how) } if (m->m_flags & M_PKTHDR) { M_COPY_PKTHDR(mn, m); +#ifdef MAC + mac_destroy_mbuf(m); +#endif m->m_flags &= ~M_PKTHDR; } mn->m_next = m; |
