| From 58b77c9796edfb1163987ca64285c1b520414c5c Mon Sep 17 00:00:00 2001 |
| From: Jeremy Sowden <jeremy@azazel.net> |
| Date: Tue, 21 May 2019 20:58:57 +0100 |
| Subject: batman-adv: fix for leaked TVLV handler. |
| |
| [ Upstream commit 17f78dd1bd624a4dd78ed5db3284a63ee807fcc3 ] |
| |
| 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> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| net/batman-adv/translation-table.c | 2 ++ |
| 1 file changed, 2 insertions(+) |
| |
| diff --git a/net/batman-adv/translation-table.c b/net/batman-adv/translation-table.c |
| index af4a02ad8503..1fab9bcf535d 100644 |
| --- a/net/batman-adv/translation-table.c |
| +++ b/net/batman-adv/translation-table.c |
| @@ -3700,6 +3700,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); |
| |
| -- |
| 2.20.1 |
| |