packet: do skb_probe_transport_header when we actually have data
authorDaniel Borkmann <daniel@iogearbox.net>
Wed, 11 Nov 2015 22:25:40 +0000 (23:25 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 15 Dec 2015 05:25:35 +0000 (21:25 -0800)
commitf61bba5058b013442466f2d9fdc64b59dabe5cb1
treeb54b784291e59474d2af79f36f73f31f16fccf8f
parentac352d515d4bb6f7063fc9dbe9f8d79e85038cda
packet: do skb_probe_transport_header when we actually have data

[ Upstream commit efdfa2f7848f64517008136fb41f53c4a1faf93a ]

In tpacket_fill_skb() commit c1aad275b029 ("packet: set transport
header before doing xmit") and later on 40893fd0fd4e ("net: switch
to use skb_probe_transport_header()") was probing for a transport
header on the skb from a ring buffer slot, but at a time, where
the skb has _not even_ been filled with data yet. So that call into
the flow dissector is pretty useless. Lets do it after we've set
up the skb frags.

Fixes: c1aad275b029 ("packet: set transport header before doing xmit")
Reported-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Jason Wang <jasowang@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
net/packet/af_packet.c