]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
packet: round up linear to header len
authorWillem de Bruijn <willemb@google.com>
Tue, 7 Feb 2017 20:57:21 +0000 (15:57 -0500)
committerJiri Slaby <jslaby@suse.cz>
Wed, 1 Mar 2017 08:59:48 +0000 (09:59 +0100)
commitda00bdddfea8683566b2aa1afec4b1c83bdb4abf
tree930327ceba45e800b61451c68241d6fbfa5cebbf
parent7a814bf5fc8b6738af64bc05d824a22d269962c6
packet: round up linear to header len

[ Upstream commit 57031eb794906eea4e1c7b31dc1e2429c0af0c66 ]

Link layer protocols may unconditionally pull headers, as Ethernet
does in eth_type_trans. Ensure that the entire link layer header
always lies in the skb linear segment. tpacket_snd has such a check.
Extend this to packet_snd.

Variable length link layer headers complicate the computation
somewhat. Here skb->len may be smaller than dev->hard_header_len.

Round up the linear length to be at least as long as the smallest of
the two.

[js] no virtio helpers in 3.12

Reported-by: Dmitry Vyukov <dvyukov@google.com>
Signed-off-by: Willem de Bruijn <willemb@google.com>
Acked-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
net/packet/af_packet.c