batman-adv: Add reference counting + nullptr fixes
[feed/routing.git] / batman-adv / patches / 0015-batman-adv-Avoid-nullptr-dereference-in-bla-after-vl.patch
1 From: Sven Eckelmann <sven@narfation.org>
2 Date: Sat, 2 Jul 2016 09:52:13 +0200
3 Subject: [PATCH] batman-adv: Avoid nullptr dereference in bla after vlan_insert_tag
4
5 vlan_insert_tag can return NULL on errors. The bridge loop avoidance code
6 therefore has to check the return value of vlan_insert_tag for NULL before
7 it can safely operate on this pointer.
8
9 Fixes: a9ce0dc43e2c ("batman-adv: add basic bridge loop avoidance code")
10 Signed-off-by: Sven Eckelmann <sven@narfation.org>
11 Signed-off-by: Marek Lindner <mareklindner@neomailbox.ch>
12
13 Origin: upstream, https://git.open-mesh.org/batman-adv.git/commit/e4cffba4d3353ea15287abbfbdd65208aa62c156
14 ---
15 net/batman-adv/bridge_loop_avoidance.c | 5 ++++-
16 1 file changed, 4 insertions(+), 1 deletion(-)
17
18 diff --git a/net/batman-adv/bridge_loop_avoidance.c b/net/batman-adv/bridge_loop_avoidance.c
19 index 0a6c8b8..fe8b62f 100644
20 --- a/net/batman-adv/bridge_loop_avoidance.c
21 +++ b/net/batman-adv/bridge_loop_avoidance.c
22 @@ -409,9 +409,12 @@ static void batadv_bla_send_claim(struct batadv_priv *bat_priv, u8 *mac,
23 break;
24 }
25
26 - if (vid & BATADV_VLAN_HAS_TAG)
27 + if (vid & BATADV_VLAN_HAS_TAG) {
28 skb = vlan_insert_tag(skb, htons(ETH_P_8021Q),
29 vid & VLAN_VID_MASK);
30 + if (!skb)
31 + goto out;
32 + }
33
34 skb_reset_mac_header(skb);
35 skb->protocol = eth_type_trans(skb, soft_iface);