batman-adv: fix skb leak in batadv_dat_snoop_incoming_arp_reply()
authorMatthias Schiffer <mschiffer@universe-factory.net>
Wed, 23 Jan 2013 17:11:53 +0000 (18:11 +0100)
committerAntonio Quartulli <ordex@autistici.org>
Sun, 27 Jan 2013 13:02:39 +0000 (14:02 +0100)
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

index 8e1d89d2b1c1cada56f190bcca967525a2b7a2e7..ce0d2992381af358f4f825fe6d460c7f94b958db 100644 (file)
@@ -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;
 }