Merge pull request #624 from ecsv/batadv-for-18.06
[feed/routing.git] / batman-adv / patches / 0041-batman-adv-Don-t-schedule-OGM-for-disabled-interface.patch
1 From: Sven Eckelmann <sven@narfation.org>
2 Date: Sun, 16 Feb 2020 13:02:06 +0100
3 Subject: batman-adv: Don't schedule OGM for disabled interface
4
5 A transmission scheduling for an interface which is currently dropped by
6 batadv_iv_ogm_iface_disable could still be in progress. The B.A.T.M.A.N. V
7 is simply cancelling the workqueue item in an synchronous way but this is
8 not possible with B.A.T.M.A.N. IV because the OGM submissions are
9 intertwined.
10
11 Instead it has to stop submitting the OGM when it detect that the buffer
12 pointer is set to NULL.
13
14 Reported-by: syzbot+a98f2016f40b9cd3818a@syzkaller.appspotmail.com
15 Reported-by: syzbot+ac36b6a33c28a491e929@syzkaller.appspotmail.com
16 Fixes: c6c8fea29769 ("net: Add batman-adv meshing protocol")
17 Signed-off-by: Sven Eckelmann <sven@narfation.org>
18 Cc: Hillf Danton <hdanton@sina.com>
19 Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
20
21 Origin: upstream, https://git.open-mesh.org/batman-adv.git/commit/a089c55ca004b396d340baae58abe9a79f32cc0f
22
23 diff --git a/net/batman-adv/bat_iv_ogm.c b/net/batman-adv/bat_iv_ogm.c
24 index f5941837c3ad463f276cffdb25f9b6cd87af0e92..0b052ff51bdeb36f7eac9abca927e267533d2930 100644
25 --- a/net/batman-adv/bat_iv_ogm.c
26 +++ b/net/batman-adv/bat_iv_ogm.c
27 @@ -970,6 +970,10 @@ static void batadv_iv_ogm_schedule_buff(struct batadv_hard_iface *hard_iface)
28
29 lockdep_assert_held(&hard_iface->bat_iv.ogm_buff_mutex);
30
31 + /* interface already disabled by batadv_iv_ogm_iface_disable */
32 + if (!*ogm_buff)
33 + return;
34 +
35 /* the interface gets activated here to avoid race conditions between
36 * the moment of activating the interface in
37 * hardif_activate_interface() where the originator mac is set and