stable.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Patch "batman-adv: Check skb size before using encapsulated ETH+VLAN header" has been added to the 4.5-stable tree
@ 2016-05-06 18:37 gregkh
  0 siblings, 0 replies; only message in thread
From: gregkh @ 2016-05-06 18:37 UTC (permalink / raw)
  To: sven, a, gregkh, mareklindner; +Cc: stable, stable-commits


This is a note to let you know that I've just added the patch titled

    batman-adv: Check skb size before using encapsulated ETH+VLAN header

to the 4.5-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     batman-adv-check-skb-size-before-using-encapsulated-eth-vlan-header.patch
and it can be found in the queue-4.5 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@vger.kernel.org> know about it.


>From c78296665c3d81f040117432ab9e1cb125521b0c Mon Sep 17 00:00:00 2001
From: Sven Eckelmann <sven@narfation.org>
Date: Fri, 26 Feb 2016 17:56:13 +0100
Subject: batman-adv: Check skb size before using encapsulated ETH+VLAN header

From: Sven Eckelmann <sven@narfation.org>

commit c78296665c3d81f040117432ab9e1cb125521b0c upstream.

The encapsulated ethernet and VLAN header may be outside the received
ethernet frame. Thus the skb buffer size has to be checked before it can be
parsed to find out if it encapsulates another batman-adv packet.

Fixes: 420193573f11 ("batman-adv: softif bridge loop avoidance")
Signed-off-by: Sven Eckelmann <sven@narfation.org>
Signed-off-by: Marek Lindner <mareklindner@neomailbox.ch>
Signed-off-by: Antonio Quartulli <a@unstable.cc>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 net/batman-adv/soft-interface.c |    8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

--- a/net/batman-adv/soft-interface.c
+++ b/net/batman-adv/soft-interface.c
@@ -407,11 +407,17 @@ void batadv_interface_rx(struct net_devi
 	 */
 	nf_reset(skb);
 
+	if (unlikely(!pskb_may_pull(skb, ETH_HLEN)))
+		goto dropped;
+
 	vid = batadv_get_vid(skb, 0);
 	ethhdr = eth_hdr(skb);
 
 	switch (ntohs(ethhdr->h_proto)) {
 	case ETH_P_8021Q:
+		if (!pskb_may_pull(skb, VLAN_ETH_HLEN))
+			goto dropped;
+
 		vhdr = (struct vlan_ethhdr *)skb->data;
 
 		if (vhdr->h_vlan_encapsulated_proto != ethertype)
@@ -423,8 +429,6 @@ void batadv_interface_rx(struct net_devi
 	}
 
 	/* skb->dev & skb->pkt_type are set here */
-	if (unlikely(!pskb_may_pull(skb, ETH_HLEN)))
-		goto dropped;
 	skb->protocol = eth_type_trans(skb, soft_iface);
 
 	/* should not be necessary anymore as we use skb_pull_rcsum()


Patches currently in stable-queue which might be from sven@narfation.org are

queue-4.5/batman-adv-reduce-refcnt-of-removed-router-when-updating-route.patch
queue-4.5/batman-adv-check-skb-size-before-using-encapsulated-eth-vlan-header.patch
queue-4.5/batman-adv-fix-broadcast-ogm-queue-limit-on-a-removed-interface.patch
queue-4.5/batman-adv-fix-dat-candidate-selection-must-use-vid.patch

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2016-05-06 19:33 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-05-06 18:37 Patch "batman-adv: Check skb size before using encapsulated ETH+VLAN header" has been added to the 4.5-stable tree gregkh

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).