aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorMatthias Schiffer <mschiffer@universe-factory.net>2013-01-23 12:11:53 -0500
committerAntonio Quartulli <ordex@autistici.org>2013-01-27 08:02:39 -0500
commit0d15becee56fdfc2e9a4374c46ea7cf7562a6f32 (patch)
tree218a53078572bf94d889d04111f1dd78a0e29b4b /net
parent1591ab6740326aaf41e194c43bdf8ece6e2e4835 (diff)
batman-adv: fix skb leak in batadv_dat_snoop_incoming_arp_reply()
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>
Diffstat (limited to 'net')
-rw-r--r--net/batman-adv/distributed-arp-table.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/net/batman-adv/distributed-arp-table.c b/net/batman-adv/distributed-arp-table.c
index 8e1d89d2b1c1..ce0d2992381a 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,
1012 */ 1012 */
1013 ret = !batadv_is_my_client(bat_priv, hw_dst); 1013 ret = !batadv_is_my_client(bat_priv, hw_dst);
1014out: 1014out:
1015 if (ret)
1016 kfree_skb(skb);
1015 /* if ret == false -> packet has to be delivered to the interface */ 1017 /* if ret == false -> packet has to be delivered to the interface */
1016 return ret; 1018 return ret;
1017} 1019}