From: Antonio Quartulli antonio@open-mesh.com
When the TVLV parsing routine succeed the skb is left untouched thus leading to a memory leak.
Fix this by consuming the skb in case of success.
Introduced by ef26157747d42254453f6b3ac2bd8bd3c53339c3 ("batman-adv: tvlv - basic infrastructure")
Reported-by: Russel Senior russell@personaltelco.net Signed-off-by: Antonio Quartulli antonio@open-mesh.com Tested-by: Russell Senior russell@personaltelco.net Signed-off-by: Marek Lindner mareklindner@neomailbox.ch --- net/batman-adv/routing.c | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/net/batman-adv/routing.c b/net/batman-adv/routing.c index c26f073..a953d5b 100644 --- a/net/batman-adv/routing.c +++ b/net/batman-adv/routing.c @@ -918,6 +918,8 @@ int batadv_recv_unicast_tvlv(struct sk_buff *skb,
if (ret != NET_RX_SUCCESS) ret = batadv_route_unicast_packet(skb, recv_if); + else + consume_skb(skb);
return ret; }