Index: sys/netgraph/ng_one2many.c =================================================================== --- sys/netgraph/ng_one2many.c +++ sys/netgraph/ng_one2many.c @@ -418,7 +418,7 @@ int error = 0; int linkNum; int i; - struct mbuf *m; + struct mbuf *m, *mcpy; m = NGI_M(item); /* just peaking, mbuf still owned by item */ /* Get link number */ @@ -454,12 +454,13 @@ /* make copies of data and send for all links * except the first one, which we'll do last */ + mcpy = m_dup(m, M_NOWAIT); for (i = 1; i < priv->numActiveMany; i++) { struct mbuf *m2; struct ng_one2many_link *mdst; mdst = &priv->many[priv->activeMany[i]]; - m2 = m_dup(m, M_NOWAIT); /* XXX m_copypacket() */ + m2 = m_copypacket(mcpy, M_NOWAIT); if (m2 == NULL) { mdst->stats.memoryFailures++; NG_FREE_ITEM(item); @@ -471,6 +472,7 @@ mdst->stats.xmitOctets += m->m_pkthdr.len; NG_SEND_DATA_ONLY(error, mdst->hook, m2); } + NG_FREE_M(mcpy); break; case NG_ONE2MANY_XMIT_FAILOVER: dst = &priv->many[priv->activeMany[0]];