dccp: do not use ipv6 header for ipv4 flow [Linux 5.1]

dccp: do not use ipv6 header for ipv4 flow [Linux 5.1]

This Linux kernel change "dccp: do not use ipv6 header for ipv4 flow" is included in the Linux 5.1 release. This change is authored by Eric Dumazet <edumazet [at] google.com> on Tue Mar 19 05:46:18 2019 -0700. The commit for this change in Linux stable tree is e0aa677 (patch).

dccp: do not use ipv6 header for ipv4 flow

When a dual stack dccp listener accepts an ipv4 flow,
it should not attempt to use an ipv6 header or
inet6_iif() helper.

Fixes: 3df80d9320bc ("[DCCP]: Introduce DCCPv6")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

There are 4 lines of Linux source code added/deleted in this change. Code changes to Linux kernel are as follows.

 net/dccp/ipv6.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/net/dccp/ipv6.c b/net/dccp/ipv6.c
index d5740ba..57d84e9 100644
--- a/net/dccp/ipv6.c
+++ b/net/dccp/ipv6.c
@@ -436,8 +436,8 @@ static struct sock *dccp_v6_request_recv_sock(const struct sock *sk,
        newnp->ipv6_mc_list = NULL;
        newnp->ipv6_ac_list = NULL;
        newnp->ipv6_fl_list = NULL;
-       newnp->mcast_oif   = inet6_iif(skb);
-       newnp->mcast_hops  = ipv6_hdr(skb)->hop_limit;
+       newnp->mcast_oif   = inet_iif(skb);
+       newnp->mcast_hops  = ip_hdr(skb)->ttl;

        /*
         * No need to charge this sock to the relevant IPv6 refcnt debug socks count

Leave a Reply

Your email address will not be published. Required fields are marked *