Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 11 Jan 2020 01:15:39 +0000 (UTC)
From:      "Bjoern A. Zeeb" <bz@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject:   svn commit: r356623 - in stable/11/sys: netinet netinet6
Message-ID:  <202001110115.00B1FdjY002614@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: bz
Date: Sat Jan 11 01:15:38 2020
New Revision: 356623
URL: https://svnweb.freebsd.org/changeset/base/356623

Log:
  MFC r354643:
  
    netinet*: update *mp to pass the proper value back
  
    In ip6_[direct_]input() we are looping over the extension headers
    to deal with the next header.  We pass a pointer to an mbuf pointer
    to the handling functions.  In certain cases the mbuf can be updated
    there and we need to pass the new one back.  That missing in
    dest6_input() and route6_input().  In tcp6_input() we should also
    update it before we call tcp_input().
  
    The merge is extracted of a larger change in head.
  
    PR:			240135
    Reported by:		prabhakar.lakhera gmail.com

Modified:
  stable/11/sys/netinet/tcp_input.c
  stable/11/sys/netinet6/dest6.c
  stable/11/sys/netinet6/icmp6.c
  stable/11/sys/netinet6/route6.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/netinet/tcp_input.c
==============================================================================
--- stable/11/sys/netinet/tcp_input.c	Sat Jan 11 00:11:29 2020	(r356622)
+++ stable/11/sys/netinet/tcp_input.c	Sat Jan 11 01:15:38 2020	(r356623)
@@ -558,6 +558,7 @@ tcp6_input(struct mbuf **mp, int *offp, int proto)
 	if (ia6)
 		ifa_free(&ia6->ia_ifa);
 
+	*mp = m;
 	return (tcp_input(mp, offp, proto));
 }
 #endif /* INET6 */

Modified: stable/11/sys/netinet6/dest6.c
==============================================================================
--- stable/11/sys/netinet6/dest6.c	Sat Jan 11 00:11:29 2020	(r356622)
+++ stable/11/sys/netinet6/dest6.c	Sat Jan 11 01:15:38 2020	(r356623)
@@ -116,6 +116,7 @@ dest6_input(struct mbuf **mp, int *offp, int proto)
 	}
 
 	*offp = off;
+	*mp = m;
 	return (dstopts->ip6d_nxt);
 
   bad:

Modified: stable/11/sys/netinet6/icmp6.c
==============================================================================
--- stable/11/sys/netinet6/icmp6.c	Sat Jan 11 00:11:29 2020	(r356622)
+++ stable/11/sys/netinet6/icmp6.c	Sat Jan 11 01:15:38 2020	(r356623)
@@ -861,6 +861,7 @@ icmp6_input(struct mbuf **mp, int *offp, int proto)
 	/* deliver the packet to appropriate sockets */
 	icmp6_rip6_input(&m, *offp);
 
+	*mp = m;
 	return IPPROTO_DONE;
 
  freeit:

Modified: stable/11/sys/netinet6/route6.c
==============================================================================
--- stable/11/sys/netinet6/route6.c	Sat Jan 11 00:11:29 2020	(r356622)
+++ stable/11/sys/netinet6/route6.c	Sat Jan 11 01:15:38 2020	(r356623)
@@ -108,5 +108,6 @@ route6_input(struct mbuf **mp, int *offp, int proto)
 	}
 
 	*offp += rhlen;
+	*mp = m;
 	return (rh->ip6r_nxt);
 }



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202001110115.00B1FdjY002614>