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);
}
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"