From d9d3c84fa41bc2f62d4d91e546b5098423274462 Mon Sep 17 00:00:00 2001 From: Sven Eckelmann Date: Wed, 6 Jul 2016 15:53:45 +0200 Subject: [PATCH] batman-adv: import Linux 4.7 fixes Introduce new fixes: * Avoid nullptr dereference in bla after vlan_insert_tag * Avoid nullptr dereference in dat after vlan_insert_tag * Avoid tt_req_node list put for unhashed entry * Fix orig_node_vlan leak on orig_node_release * Fix non-atomic bla_claim::backbone_gw access * Fix reference leak in batadv_find_router * Free last_bonding_candidate on release of orig_node Also replace the gluon version of the speedyjoin patch with the one already included in openwrt-routing. Signed-off-by: Sven Eckelmann --- modules | 2 +- ...x-speedy-join-in-gateway-client-mode.patch | 57 ------------------- 2 files changed, 1 insertion(+), 58 deletions(-) delete mode 100644 patches/packages/routing/0004-batman-adv-Fix-speedy-join-in-gateway-client-mode.patch diff --git a/modules b/modules index ca4e2800..897c69c0 100644 --- a/modules +++ b/modules @@ -11,7 +11,7 @@ PACKAGES_GLUON_REPO=git://github.com/freifunk-gluon/packages.git PACKAGES_GLUON_COMMIT=390b221b51a490f41081a8a610dd161037547c48 PACKAGES_ROUTING_REPO=git://github.com/openwrt-routing/packages.git -PACKAGES_ROUTING_COMMIT=85e771d2f1ca1981983238073ffc602981acbb40 +PACKAGES_ROUTING_COMMIT=7f6956b5bbccbd2975c154268fe354ae2415aa42 PACKAGES_LUCI_REPO=git://github.com/openwrt/luci.git PACKAGES_LUCI_COMMIT=70a4d43cc895b7d728b4fc201f2b6fd9f4b8aaec diff --git a/patches/packages/routing/0004-batman-adv-Fix-speedy-join-in-gateway-client-mode.patch b/patches/packages/routing/0004-batman-adv-Fix-speedy-join-in-gateway-client-mode.patch deleted file mode 100644 index 0ce45b9e..00000000 --- a/patches/packages/routing/0004-batman-adv-Fix-speedy-join-in-gateway-client-mode.patch +++ /dev/null @@ -1,57 +0,0 @@ -From: Sven Eckelmann -Date: Fri, 17 Jun 2016 15:54:03 +0200 -Subject: batman-adv: Fix speedy join in gateway client mode - -Speedy join only works when the received packet is either broadcast or an -4addr unicast packet. Thus packets converted from broadcast to unicast via -the gateway handling code have to be converted to 4addr packets to allow -the receiving gateway server to add the sender address as temporary entry -to the translation table. - -Not doing it will make the batman-adv gateway server drop the DHCP response -in many situations because it doesn't yet have the TT entry for the -destination of the DHCP response. - -Signed-off-by: Sven Eckelmann - -diff --git a/batman-adv/patches/0001-batman-adv-Fix-speedy-join-in-gateway-client-mode.patch b/batman-adv/patches/0001-batman-adv-Fix-speedy-join-in-gateway-client-mode.patch -new file mode 100644 -index 0000000..e63b782 ---- /dev/null -+++ b/batman-adv/patches/0001-batman-adv-Fix-speedy-join-in-gateway-client-mode.patch -@@ -0,0 +1,35 @@ -+From: Sven Eckelmann -+Date: Sun, 12 Jun 2016 10:43:19 +0200 -+Subject: [PATCH] batman-adv: Fix speedy join in gateway client mode -+ -+Speedy join only works when the received packet is either broadcast or an -+4addr unicast packet. Thus packets converted from broadcast to unicast via -+the gateway handling code have to be converted to 4addr packets to allow -+the receiving gateway server to add the sender address as temporary entry -+to the translation table. -+ -+Not doing it will make the batman-adv gateway server drop the DHCP response -+in many situations because it doesn't yet have the TT entry for the -+destination of the DHCP response. -+ -+Fixes: 9cbc67d9da47 ("batman-adv: change interface_rx to get orig node") -+Signed-off-by: Sven Eckelmann -+--- -+ net/batman-adv/send.c | 4 ++-- -+ 1 file changed, 2 insertions(+), 2 deletions(-) -+ -+diff --git a/net/batman-adv/send.c b/net/batman-adv/send.c -+index f2f1256..0103976 100644 -+--- a/net/batman-adv/send.c -++++ b/net/batman-adv/send.c -+@@ -424,8 +424,8 @@ int batadv_send_skb_via_gw(struct batadv_priv *bat_priv, struct sk_buff *skb, -+ struct batadv_orig_node *orig_node; -+ -+ orig_node = batadv_gw_get_selected_orig(bat_priv); -+- return batadv_send_skb_unicast(bat_priv, skb, BATADV_UNICAST, 0, -+- orig_node, vid); -++ return batadv_send_skb_unicast(bat_priv, skb, BATADV_UNICAST_4ADDR, -++ BATADV_P_DATA, orig_node, vid); -+ } -+ -+ void batadv_schedule_bat_ogm(struct batadv_hard_iface *hard_iface)