Patchwork [1/3] batman-adv: fix skb leak in batadv_dat_snoop_incoming_arp_reply()

login
register
mail settings
Submitter Antonio Quartulli
Date Jan. 27, 2013, 7:43 p.m.
Message ID <1359315839-24136-2-git-send-email-ordex@autistici.org>
Download mbox | patch
Permalink /patch/216058/
State Accepted
Delegated to: David Miller
Headers show

Comments

Antonio Quartulli - Jan. 27, 2013, 7:43 p.m.
From: Matthias Schiffer <mschiffer@universe-factory.net>

The callers of batadv_dat_snoop_incoming_arp_reply() assume the skb has been
freed when it returns true; fix this by calling kfree_skb before returning as
it is done in batadv_dat_snoop_incoming_arp_request().

Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
Acked-by: Antonio Quartulli <ordex@autistici.org>
Signed-off-by: Antonio Quartulli <ordex@autistici.org>
---
 net/batman-adv/distributed-arp-table.c | 2 ++
 1 file changed, 2 insertions(+)

Patch

diff --git a/net/batman-adv/distributed-arp-table.c b/net/batman-adv/distributed-arp-table.c
index 7485a78..9f4cff3 100644
--- a/net/batman-adv/distributed-arp-table.c
+++ b/net/batman-adv/distributed-arp-table.c
@@ -1012,6 +1012,8 @@  bool batadv_dat_snoop_incoming_arp_reply(struct batadv_priv *bat_priv,
 	 */
 	ret = !batadv_is_my_client(bat_priv, hw_dst);
 out:
+	if (ret)
+		kfree_skb(skb);
 	/* if ret == false -> packet has to be delivered to the interface */
 	return ret;
 }