diff options
author | Shmulik Ladkani <shmulik.ladkani@gmail.com> | 2016-06-29 21:47:03 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-06-30 09:02:48 -0400 |
commit | fedbb6b4ff341c1e2120f4ffbf367fd78ac3e8f3 (patch) | |
tree | aec9b6ddce0a103d82704f52a693f1d3cd238dbb /drivers/net/usb | |
parent | 5ab0d6a016b19d8cbd503eafd0ef701cfd854402 (diff) | |
download | linux-fedbb6b4ff341c1e2120f4ffbf367fd78ac3e8f3.tar.bz2 |
ipv4: Fix ip_skb_dst_mtu to use the sk passed by ip_finish_output
ip_skb_dst_mtu uses skb->sk, assuming it is an AF_INET socket (e.g. it
calls ip_sk_use_pmtu which casts sk as an inet_sk).
However, in the case of UDP tunneling, the skb->sk is not necessarily an
inet socket (could be AF_PACKET socket, or AF_UNSPEC if arriving from
tun/tap).
OTOH, the sk passed as an argument throughout IP stack's output path is
the one which is of PMTU interest:
- In case of local sockets, sk is same as skb->sk;
- In case of a udp tunnel, sk is the tunneling socket.
Fix, by passing ip_finish_output's sk to ip_skb_dst_mtu.
This augments 7026b1ddb6 'netfilter: Pass socket pointer down through okfn().'
Signed-off-by: Shmulik Ladkani <shmulik.ladkani@gmail.com>
Reviewed-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/usb')
0 files changed, 0 insertions, 0 deletions