36 lines
1.4 KiB
Diff
36 lines
1.4 KiB
Diff
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
|
|
|
|
--- 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(
|
|
|
|
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
|