diff options
author | Matthias Schiffer <mschiffer@universe-factory.net> | 2013-01-23 12:11:53 -0500 |
---|---|---|
committer | Antonio Quartulli <ordex@autistici.org> | 2013-01-27 08:02:39 -0500 |
commit | 0d15becee56fdfc2e9a4374c46ea7cf7562a6f32 (patch) | |
tree | 218a53078572bf94d889d04111f1dd78a0e29b4b /net/batman-adv | |
parent | 1591ab6740326aaf41e194c43bdf8ece6e2e4835 (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/batman-adv')
-rw-r--r-- | net/batman-adv/distributed-arp-table.c | 2 |
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); |
1014 | out: | 1014 | out: |
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 | } |