summary refs log tree commit diff
path: root/net/batman-adv
diff options
context:
space:
mode:
authorJeremy Sowden <jeremy@azazel.net>2019-05-21 20:58:57 +0100
committerSimon Wunderlich <sw@simonwunderlich.de>2019-05-21 23:01:24 +0200
commit17f78dd1bd624a4dd78ed5db3284a63ee807fcc3 (patch)
treec9a53809c7dc5fbca21c41b4780486ab5c36bea6 /net/batman-adv
parenta188339ca5a396acc588e5851ed7e19f66b0ebd9 (diff)
downloadlinux-17f78dd1bd624a4dd78ed5db3284a63ee807fcc3.tar.gz
batman-adv: fix for leaked TVLV handler.
A handler for BATADV_TVLV_ROAM was being registered when the
translation-table was initialized, but not unregistered when the
translation-table was freed.  Unregister it.

Fixes: 122edaa05940 ("batman-adv: tvlv - convert roaming adv packet to use tvlv unicast packets")
Reported-by: syzbot+d454a826e670502484b8@syzkaller.appspotmail.com
Signed-off-by: Jeremy Sowden <jeremy@azazel.net>
Signed-off-by: Sven Eckelmann <sven@narfation.org
Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
Diffstat (limited to 'net/batman-adv')
-rw-r--r--net/batman-adv/translation-table.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/net/batman-adv/translation-table.c b/net/batman-adv/translation-table.c
index 1ddfd5e011ee..8a482c5ec67b 100644
--- a/net/batman-adv/translation-table.c
+++ b/net/batman-adv/translation-table.c
@@ -3813,6 +3813,8 @@ static void batadv_tt_purge(struct work_struct *work)
  */
 void batadv_tt_free(struct batadv_priv *bat_priv)
 {
+	batadv_tvlv_handler_unregister(bat_priv, BATADV_TVLV_ROAM, 1);
+
 	batadv_tvlv_container_unregister(bat_priv, BATADV_TVLV_TT, 1);
 	batadv_tvlv_handler_unregister(bat_priv, BATADV_TVLV_TT, 1);