From: Matthias Schiffer Date: Wed, 23 Jan 2013 17:11:53 +0000 (+0100) Subject: batman-adv: fix skb leak in batadv_dat_snoop_incoming_arp_reply() X-Git-Tag: v3.8-rc6~20^2~9^2~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0d15becee56fdfc2e9a4374c46ea7cf7562a6f32;p=platform%2Fkernel%2Flinux-stable.git 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 Signed-off-by: Marek Lindner Acked-by: Antonio Quartulli Signed-off-by: Antonio Quartulli --- diff --git a/net/batman-adv/distributed-arp-table.c b/net/batman-adv/distributed-arp-table.c index 8e1d89d..ce0d299 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; }