From 18a724e154f9a9e9ac64d91d6a1f73f9b31cb22f Mon Sep 17 00:00:00 2001 From: Sven Eckelmann Date: Fri, 6 Mar 2020 20:51:17 +0100 Subject: [PATCH] batman-adv: Merge bugfixes from 2020.0 * Don't schedule OGM for disabled interface Signed-off-by: Sven Eckelmann --- batman-adv/Makefile | 2 +- ...-schedule-OGM-for-disabled-interface.patch | 37 +++++++++++++++++++ 2 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 batman-adv/patches/0015-batman-adv-Don-t-schedule-OGM-for-disabled-interface.patch diff --git a/batman-adv/Makefile b/batman-adv/Makefile index e689d72..6b831c7 100644 --- a/batman-adv/Makefile +++ b/batman-adv/Makefile @@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=batman-adv PKG_VERSION:=2019.2 -PKG_RELEASE:=5 +PKG_RELEASE:=6 PKG_HASH:=70c3f6a6cf88d2b25681a76768a52ed92d9fe992ba8e358368b6a8088757adc8 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz diff --git a/batman-adv/patches/0015-batman-adv-Don-t-schedule-OGM-for-disabled-interface.patch b/batman-adv/patches/0015-batman-adv-Don-t-schedule-OGM-for-disabled-interface.patch new file mode 100644 index 0000000..bf42a69 --- /dev/null +++ b/batman-adv/patches/0015-batman-adv-Don-t-schedule-OGM-for-disabled-interface.patch @@ -0,0 +1,37 @@ +From: Sven Eckelmann +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 +Cc: Hillf Danton +Signed-off-by: Simon Wunderlich + +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 5b0b20e6da956b4333b118bce1c09c5acef6d66f..d88a4de0223727d25cf36839e46d7777449f025a 100644 +--- a/net/batman-adv/bat_iv_ogm.c ++++ b/net/batman-adv/bat_iv_ogm.c +@@ -789,6 +789,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 -- 2.30.2