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)
committerDavid S. Miller <davem@davemloft.net>
Sun, 15 Nov 2015 23:00:35 +0000 (18:00 -0500)
commitefdfa2f7848f64517008136fb41f53c4a1faf93a
tree98233d2dcaba736b5362b21cac3e40695715fe47
parentd7475de58575c904818efa369c82e88c6648ce2e
packet: do skb_probe_transport_header when we actually have data

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>
net/packet/af_packet.c