Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys when dropping M_PKTHDR, need to free m_tag associated wi...



details:   https://anonhg.NetBSD.org/src/rev/efef6b90b21c
branches:  trunk
changeset: 552816:efef6b90b21c
user:      itojun <itojun%NetBSD.org@localhost>
date:      Fri Oct 03 20:56:11 2003 +0000

description:
when dropping M_PKTHDR, need to free m_tag associated with it.

diffstat:

 sys/kern/uipc_mbuf.c      |  7 +++++--
 sys/net/if_ieee1394subr.c |  5 +++--
 sys/netinet/ip_output.c   |  7 ++++---
 sys/netinet6/ip6_output.c |  5 +++--
 sys/netinet6/ipsec.c      |  6 ++++--
 5 files changed, 19 insertions(+), 11 deletions(-)

diffs (161 lines):

diff -r 2b7f8cba948e -r efef6b90b21c sys/kern/uipc_mbuf.c
--- a/sys/kern/uipc_mbuf.c      Fri Oct 03 19:55:34 2003 +0000
+++ b/sys/kern/uipc_mbuf.c      Fri Oct 03 20:56:11 2003 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: uipc_mbuf.c,v 1.73 2003/09/07 12:04:13 yamt Exp $      */
+/*     $NetBSD: uipc_mbuf.c,v 1.74 2003/10/03 20:56:11 itojun Exp $    */
 
 /*-
  * Copyright (c) 1999, 2001 The NetBSD Foundation, Inc.
@@ -69,7 +69,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uipc_mbuf.c,v 1.73 2003/09/07 12:04:13 yamt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uipc_mbuf.c,v 1.74 2003/10/03 20:56:11 itojun Exp $");
 
 #include "opt_mbuftrace.h"
 
@@ -422,6 +422,7 @@
        }
        if (m->m_flags & M_PKTHDR) {
                M_COPY_PKTHDR(mn, m);
+               m_tag_delete_chain(m, NULL);
                m->m_flags &= ~M_PKTHDR;
        } else {
                MCLAIM(mn, m->m_owner);
@@ -765,6 +766,7 @@
                m->m_len = 0;
                if (n->m_flags & M_PKTHDR) {
                        M_COPY_PKTHDR(m, n);
+                       m_tag_delete_chain(n, NULL);
                        n->m_flags &= ~M_PKTHDR;
                }
        }
@@ -816,6 +818,7 @@
        m->m_len = 0;
        if (n->m_flags & M_PKTHDR) {
                M_COPY_PKTHDR(m, n);
+               m_tag_delete_chain(m, NULL);
                n->m_flags &= ~M_PKTHDR;
        }
        m->m_data += dstoff;
diff -r 2b7f8cba948e -r efef6b90b21c sys/net/if_ieee1394subr.c
--- a/sys/net/if_ieee1394subr.c Fri Oct 03 19:55:34 2003 +0000
+++ b/sys/net/if_ieee1394subr.c Fri Oct 03 20:56:11 2003 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: if_ieee1394subr.c,v 1.23 2003/05/23 10:06:18 itojun Exp $      */
+/*     $NetBSD: if_ieee1394subr.c,v 1.24 2003/10/03 20:56:11 itojun Exp $      */
 
 /*
  * Copyright (c) 2000 The NetBSD Foundation, Inc.
@@ -37,7 +37,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_ieee1394subr.c,v 1.23 2003/05/23 10:06:18 itojun Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_ieee1394subr.c,v 1.24 2003/10/03 20:56:11 itojun Exp $");
 
 #include "opt_inet.h"
 #include "bpfilter.h"
@@ -441,6 +441,7 @@
        dgl = ifh->ifh_dgl;
        len = m0->m_pkthdr.len;
        if (ftype & IEEE1394_FT_SUBSEQ) {
+               m_tag_delete_chain(m0, NULL);
                m0->m_flags &= ~M_PKTHDR;
                off = ntohs(ifh->ifh_etype_off);
        } else
diff -r 2b7f8cba948e -r efef6b90b21c sys/netinet/ip_output.c
--- a/sys/netinet/ip_output.c   Fri Oct 03 19:55:34 2003 +0000
+++ b/sys/netinet/ip_output.c   Fri Oct 03 20:56:11 2003 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: ip_output.c,v 1.122 2003/10/01 23:54:40 itojun Exp $   */
+/*     $NetBSD: ip_output.c,v 1.123 2003/10/03 20:56:11 itojun Exp $   */
 
 /*
  * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
@@ -98,7 +98,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ip_output.c,v 1.122 2003/10/01 23:54:40 itojun Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ip_output.c,v 1.123 2003/10/03 20:56:11 itojun Exp $");
 
 #include "opt_pfil_hooks.h"
 #include "opt_ipsec.h"
@@ -1029,12 +1029,13 @@
                return (m);             /* XXX should fail */
        if (!in_nullhost(p->ipopt_dst))
                ip->ip_dst = p->ipopt_dst;
-       if (m->m_flags & M_EXT || m->m_data - optlen < m->m_pktdat) {
+       if (M_READONLY(m) || M_LEADINGSPACE(m) < optlen) {
                MGETHDR(n, M_DONTWAIT, MT_HEADER);
                if (n == 0)
                        return (m);
                MCLAIM(n, m->m_owner);
                M_COPY_PKTHDR(n, m);
+               m_tag_delete_chain(m, NULL);
                m->m_flags &= ~M_PKTHDR;
                m->m_len -= sizeof(struct ip);
                m->m_data += sizeof(struct ip);
diff -r 2b7f8cba948e -r efef6b90b21c sys/netinet6/ip6_output.c
--- a/sys/netinet6/ip6_output.c Fri Oct 03 19:55:34 2003 +0000
+++ b/sys/netinet6/ip6_output.c Fri Oct 03 20:56:11 2003 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: ip6_output.c,v 1.70 2003/09/06 03:36:33 itojun Exp $   */
+/*     $NetBSD: ip6_output.c,v 1.71 2003/10/03 20:56:11 itojun Exp $   */
 /*     $KAME: ip6_output.c,v 1.172 2001/03/25 09:55:56 itojun Exp $    */
 
 /*
@@ -62,7 +62,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ip6_output.c,v 1.70 2003/09/06 03:36:33 itojun Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ip6_output.c,v 1.71 2003/10/03 20:56:11 itojun Exp $");
 
 #include "opt_inet.h"
 #include "opt_ipsec.h"
@@ -2270,6 +2270,7 @@
                }
                M_COPY_PKTHDR(mh, m);
                MH_ALIGN(mh, sizeof(*ip6));
+               m_tag_delete_chain(m, NULL);
                m->m_flags &= ~M_PKTHDR;
                m->m_len -= sizeof(*ip6);
                m->m_data += sizeof(*ip6);
diff -r 2b7f8cba948e -r efef6b90b21c sys/netinet6/ipsec.c
--- a/sys/netinet6/ipsec.c      Fri Oct 03 19:55:34 2003 +0000
+++ b/sys/netinet6/ipsec.c      Fri Oct 03 20:56:11 2003 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: ipsec.c,v 1.85 2003/10/03 08:46:15 itojun Exp $        */
+/*     $NetBSD: ipsec.c,v 1.86 2003/10/03 20:56:11 itojun Exp $        */
 /*     $KAME: ipsec.c,v 1.136 2002/05/19 00:36:39 itojun Exp $ */
 
 /*
@@ -35,7 +35,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ipsec.c,v 1.85 2003/10/03 08:46:15 itojun Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ipsec.c,v 1.86 2003/10/03 20:56:11 itojun Exp $");
 
 #include "opt_inet.h"
 #include "opt_ipsec.h"
@@ -3175,6 +3175,7 @@
                }
                M_COPY_PKTHDR(mh, m);
                MH_ALIGN(mh, hlen);
+               m_tag_delete_chain(m, NULL);
                m->m_flags &= ~M_PKTHDR;
                m->m_len -= hlen;
                m->m_data += hlen;
@@ -3212,6 +3213,7 @@
                }
                M_COPY_PKTHDR(mh, m);
                MH_ALIGN(mh, hlen);
+               m_tag_delete_chain(m, NULL);
                m->m_flags &= ~M_PKTHDR;
                m->m_len -= hlen;
                m->m_data += hlen;



Home | Main Index | Thread Index | Old Index