summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Wunderlich <sw@simonwunderlich.de>2020-03-10 17:09:07 +0100
committerGitHub <noreply@github.com>2020-03-10 17:09:07 +0100
commitfb287c3e4b241d9af080eda8e42da0e515897358 (patch)
tree2eae872d8d8d083ffc147443963695374489babf
parente924835c8114aa284659282691eeeb52c19cd954 (diff)
parent305cce9234660179f726f8de1b2cf5ba42378aee (diff)
Merge pull request #556 from ecsv/batadv-for-17.01
lede-17.01: batman-adv: Merge bugfixes from 2020.0
-rw-r--r--batman-adv/Makefile2
-rw-r--r--batman-adv/patches/0075-batman-adv-Don-t-schedule-OGM-for-disabled-interface.patch37
2 files changed, 38 insertions, 1 deletions
diff --git a/batman-adv/Makefile b/batman-adv/Makefile
index 914d80b..36cb712 100644
--- a/batman-adv/Makefile
+++ b/batman-adv/Makefile
@@ -11,7 +11,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=batman-adv
PKG_VERSION:=2016.5
-PKG_RELEASE:=15
+PKG_RELEASE:=16
PKG_MD5SUM:=6717a933a08dd2a01b00df30cb9f16a8
PKG_HASH:=d0a0fc90c4f410b57d043215e253bb0b855efa5edbe165d87c17bfdcfafd0db7
diff --git a/batman-adv/patches/0075-batman-adv-Don-t-schedule-OGM-for-disabled-interface.patch b/batman-adv/patches/0075-batman-adv-Don-t-schedule-OGM-for-disabled-interface.patch
new file mode 100644
index 0000000..75663f5
--- /dev/null
+++ b/batman-adv/patches/0075-batman-adv-Don-t-schedule-OGM-for-disabled-interface.patch
@@ -0,0 +1,37 @@
+From: Sven Eckelmann <sven@narfation.org>
+Date: Sun, 16 Feb 2020 13:02:06 +0100
+Subject: batman-adv: Don't schedule OGM for disabled interface
+
+A transmission scheduling for an interface which is currently dropped by
+batadv_iv_ogm_iface_disable could still be in progress. The B.A.T.M.A.N. V
+is simply cancelling the workqueue item in an synchronous way but this is
+not possible with B.A.T.M.A.N. IV because the OGM submissions are
+intertwined.
+
+Instead it has to stop submitting the OGM when it detect that the buffer
+pointer is set to NULL.
+
+Reported-by: syzbot+a98f2016f40b9cd3818a@syzkaller.appspotmail.com
+Reported-by: syzbot+ac36b6a33c28a491e929@syzkaller.appspotmail.com
+Fixes: c6c8fea29769 ("net: Add batman-adv meshing protocol")
+Signed-off-by: Sven Eckelmann <sven@narfation.org>
+Cc: Hillf Danton <hdanton@sina.com>
+Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
+
+Origin: upstream, https://git.open-mesh.org/batman-adv.git/commit/a089c55ca004b396d340baae58abe9a79f32cc0f
+
+diff --git a/net/batman-adv/bat_iv_ogm.c b/net/batman-adv/bat_iv_ogm.c
+index 80fc960e656eb2f11f58fc8211235e033331bfd5..d21c88cecf2a54fbb88cd3d74d460278f5b4396b 100644
+--- a/net/batman-adv/bat_iv_ogm.c
++++ b/net/batman-adv/bat_iv_ogm.c
+@@ -962,6 +962,10 @@ static void batadv_iv_ogm_schedule_buff(struct batadv_hard_iface *hard_iface)
+
+ lockdep_assert_held(&hard_iface->bat_iv.ogm_buff_mutex);
+
++ /* interface already disabled by batadv_iv_ogm_iface_disable */
++ if (!*ogm_buff)
++ return;
++
+ /* the interface gets activated here to avoid race conditions between
+ * the moment of activating the interface in
+ * hardif_activate_interface() where the originator mac is set and