View | Details | Raw Unified | Return to bug 198928
Collapse All | Expand All

(-)ip_output.c (-7 / +7 lines)
Lines 787-797 Link Here
787
			IPSTAT_INC(ips_odropped);
787
			IPSTAT_INC(ips_odropped);
788
			goto done;
788
			goto done;
789
		}
789
		}
790
		/* make sure the flowid is the same for the fragmented mbufs */
790
		/* make sure the packet header gets copied */
791
		M_HASHTYPE_SET(m, M_HASHTYPE_GET(m0));
791
		if (m_dup_pkthdr(m, m0, M_NOWAIT) == 0) {
792
		m->m_pkthdr.flowid = m0->m_pkthdr.flowid;
792
			m_free(m);
793
		/* copy multicast flag, if any */
793
			error = ENOBUFS;
794
		m->m_flags |= (m0->m_flags & M_MCAST);
794
			IPSTAT_INC(ips_odropped);
795
			goto done;
796
		}
795
		/*
797
		/*
796
		 * In the first mbuf, leave room for the link header, then
798
		 * In the first mbuf, leave room for the link header, then
797
		 * copy the original IP header including options. The payload
799
		 * copy the original IP header including options. The payload
Lines 821-831 Link Here
821
			goto done;
823
			goto done;
822
		}
824
		}
823
		m->m_pkthdr.len = mhlen + len;
825
		m->m_pkthdr.len = mhlen + len;
824
		m->m_pkthdr.rcvif = NULL;
825
#ifdef MAC
826
#ifdef MAC
826
		mac_netinet_fragment(m0, m);
827
		mac_netinet_fragment(m0, m);
827
#endif
828
#endif
828
		m->m_pkthdr.csum_flags = m0->m_pkthdr.csum_flags;
829
		mhip->ip_off = htons(mhip->ip_off);
829
		mhip->ip_off = htons(mhip->ip_off);
830
		mhip->ip_sum = 0;
830
		mhip->ip_sum = 0;
831
		if (m->m_pkthdr.csum_flags & CSUM_IP & ~if_hwassist_flags) {
831
		if (m->m_pkthdr.csum_flags & CSUM_IP & ~if_hwassist_flags) {

Return to bug 198928