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>